Line data Source code
1 : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 : /*
3 : * This file is part of the LibreOffice project.
4 : *
5 : * This Source Code Form is subject to the terms of the Mozilla Public
6 : * License, v. 2.0. If a copy of the MPL was not distributed with this
7 : * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 : *
9 : * This file incorporates work covered by the following license notice:
10 : *
11 : * Licensed to the Apache Software Foundation (ASF) under one or more
12 : * contributor license agreements. See the NOTICE file distributed
13 : * with this work for additional information regarding copyright
14 : * ownership. The ASF licenses this file to you under the Apache
15 : * License, Version 2.0 (the "License"); you may not use this file
16 : * except in compliance with the License. You may obtain a copy of
17 : * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18 : */
19 :
20 : #include <hintids.hxx>
21 : #include <vcl/msgbox.hxx>
22 : #include <sfx2/app.hxx>
23 : #include <sfx2/imgmgr.hxx>
24 : #include <svx/gallery.hxx>
25 : #include <editeng/brushitem.hxx>
26 : #include <editeng/lrspitem.hxx>
27 : #include <editeng/numitem.hxx>
28 : #include <swvset.hxx>
29 : #include <swmodule.hxx>
30 : #include <wrtsh.hxx>
31 : #include <docsh.hxx>
32 : #include <wview.hxx>
33 : #include <uitool.hxx>
34 : #include <wdocsh.hxx>
35 : #include <uiitems.hxx>
36 : #include <docstyle.hxx>
37 : #include <charfmt.hxx>
38 : #include <uinums.hxx>
39 : #include <poolfmt.hxx>
40 : #include <shellres.hxx>
41 : #include <outline.hxx>
42 : #include <num.hxx>
43 : #include <viewopt.hxx>
44 : #include <frmmgr.hxx>
45 :
46 : #include <misc.hrc>
47 : #include <frmui.hrc>
48 : #include <globals.hrc>
49 : #include <helpid.h>
50 : #include <SwStyleNameMapper.hxx>
51 : #include <svx/svxids.hrc>
52 : #include <svx/dialogs.hrc>
53 : #include <svl/stritem.hxx>
54 : #include <svl/aeitem.hxx>
55 : #include <svl/slstitm.hxx>
56 :
57 : static sal_Bool bLastRelative = sal_False;
58 :
59 : //See cui/uiconfig/ui/numberingpositionpage.ui for effectively a duplicate
60 : //dialog to this one, except with a different preview window impl.
61 : //TODO, determine if SwNumPositionTabPage and SvxNumPositionTabPage can be
62 : //merged
63 0 : SwNumPositionTabPage::SwNumPositionTabPage(Window* pParent,
64 : const SfxItemSet& rSet)
65 : : SfxTabPage(pParent, "OutlinePositionPage",
66 : "modules/swriter/ui/outlinepositionpage.ui", rSet)
67 : , pActNum(0)
68 : , pSaveNum(0)
69 : , pWrtSh(0)
70 : , pOutlineDlg(0)
71 : , bPreset( sal_False )
72 : , bInInintControl(sal_False)
73 0 : , bLabelAlignmentPosAndSpaceModeActive( false )
74 : {
75 0 : get(m_pLevelLB, "levellb");
76 0 : m_pLevelLB->EnableMultiSelection(true);
77 0 : get(m_pPositionFrame, "numberingframe");
78 0 : get(m_pDistBorderFT, "indent");
79 0 : get(m_pDistBorderMF, "indentmf");
80 0 : get(m_pRelativeCB, "relative");
81 0 : get(m_pIndentFT, "numberingwidth");
82 0 : get(m_pIndentMF, "numberingwidthmf");
83 0 : get(m_pDistNumFT, "numdist");
84 0 : get(m_pDistNumMF, "numdistmf");
85 0 : get(m_pAlignFT, "numalign");
86 0 : get(m_pAlignLB, "numalignlb");
87 :
88 0 : get(m_pLabelFollowedByFT, "numfollowedby");
89 0 : get(m_pLabelFollowedByLB, "numfollowedbylb");
90 0 : get(m_pListtabFT, "at");
91 0 : get(m_pListtabMF, "atmf");
92 0 : get(m_pAlign2FT, "num2align");
93 0 : get(m_pAlign2LB, "num2alignlb");
94 0 : get(m_pAlignedAtFT, "alignedat");
95 0 : get(m_pAlignedAtMF, "alignedatmf");
96 0 : get(m_pIndentAtFT, "indentat");
97 0 : get(m_pIndentAtMF, "indentatmf");
98 0 : get(m_pStandardPB, "standard");
99 :
100 0 : get(m_pPreviewWIN, "preview");
101 :
102 0 : SetExchangeSupport();
103 0 : m_pPreviewWIN->SetBackground(Wallpaper(Color(COL_TRANSPARENT)));
104 :
105 0 : m_pStandardPB->SetAccessibleRelationMemberOf(m_pPositionFrame->get_label_widget());
106 :
107 0 : m_pRelativeCB->Check();
108 0 : m_pAlignLB->SetSelectHdl(LINK(this, SwNumPositionTabPage, EditModifyHdl));
109 0 : m_pAlign2LB->SetSelectHdl(LINK(this, SwNumPositionTabPage, EditModifyHdl));
110 0 : for ( sal_Int32 i = 0; i < m_pAlignLB->GetEntryCount(); ++i )
111 : {
112 0 : m_pAlign2LB->InsertEntry( m_pAlignLB->GetEntry( i ) );
113 : }
114 0 : m_pAlign2LB->SetDropDownLineCount( m_pAlign2LB->GetEntryCount() );
115 0 : m_pAlign2FT->SetText( m_pAlignFT->GetText() );
116 :
117 0 : Link aLk = LINK(this, SwNumPositionTabPage, DistanceHdl);
118 0 : m_pDistBorderMF->SetUpHdl(aLk);
119 0 : m_pDistNumMF->SetUpHdl(aLk);
120 0 : m_pIndentMF->SetUpHdl(aLk);
121 0 : m_pDistBorderMF->SetDownHdl(aLk);
122 0 : m_pDistNumMF->SetDownHdl(aLk);
123 0 : m_pIndentMF->SetDownHdl(aLk);
124 0 : m_pDistBorderMF->SetLoseFocusHdl(aLk);
125 0 : m_pDistNumMF->SetLoseFocusHdl(aLk);
126 0 : m_pIndentMF->SetLoseFocusHdl(aLk);
127 :
128 0 : m_pLabelFollowedByLB->SetDropDownLineCount( m_pLabelFollowedByLB->GetEntryCount() );
129 0 : m_pLabelFollowedByLB->SetSelectHdl( LINK(this, SwNumPositionTabPage, LabelFollowedByHdl_Impl) );
130 :
131 0 : aLk = LINK(this, SwNumPositionTabPage, ListtabPosHdl_Impl);
132 0 : m_pListtabMF->SetUpHdl(aLk);
133 0 : m_pListtabMF->SetDownHdl(aLk);
134 0 : m_pListtabMF->SetLoseFocusHdl(aLk);
135 :
136 0 : aLk = LINK(this, SwNumPositionTabPage, AlignAtHdl_Impl);
137 0 : m_pAlignedAtMF->SetUpHdl(aLk);
138 0 : m_pAlignedAtMF->SetDownHdl(aLk);
139 0 : m_pAlignedAtMF->SetLoseFocusHdl(aLk);
140 :
141 0 : aLk = LINK(this, SwNumPositionTabPage, IndentAtHdl_Impl);
142 0 : m_pIndentAtMF->SetUpHdl(aLk);
143 0 : m_pIndentAtMF->SetDownHdl(aLk);
144 0 : m_pIndentAtMF->SetLoseFocusHdl(aLk);
145 :
146 0 : m_pLevelLB->SetSelectHdl(LINK(this, SwNumPositionTabPage, LevelHdl));
147 0 : m_pRelativeCB->SetClickHdl(LINK(this, SwNumPositionTabPage, RelativeHdl));
148 0 : m_pStandardPB->SetClickHdl(LINK(this, SwNumPositionTabPage, StandardHdl));
149 :
150 : // insert levels
151 0 : for(sal_uInt16 i = 1; i <= MAXLEVEL; i++)
152 0 : m_pLevelLB->InsertEntry(OUString::number(i));
153 0 : OUString sEntry("1 - ");
154 0 : sEntry += OUString::number(MAXLEVEL);
155 0 : m_pLevelLB->InsertEntry(sEntry);
156 0 : m_pLevelLB->SelectEntry(sEntry);
157 :
158 0 : m_pRelativeCB->Check(bLastRelative);
159 0 : m_pPreviewWIN->SetPositionMode();
160 0 : }
161 :
162 0 : SwNumPositionTabPage::~SwNumPositionTabPage()
163 : {
164 0 : delete pActNum;
165 0 : }
166 :
167 0 : void SwNumPositionTabPage::InitControls()
168 : {
169 0 : bInInintControl = sal_True;
170 0 : const bool bRelative = !bLabelAlignmentPosAndSpaceModeActive &&
171 0 : m_pRelativeCB->IsEnabled() && m_pRelativeCB->IsChecked();
172 0 : const bool bSingleSelection = m_pLevelLB->GetSelectEntryCount() == 1 &&
173 0 : USHRT_MAX != nActNumLvl;
174 :
175 0 : m_pDistBorderMF->Enable( !bLabelAlignmentPosAndSpaceModeActive &&
176 0 : ( bSingleSelection || bRelative || pOutlineDlg != 0 ) );
177 0 : m_pDistBorderFT->Enable( !bLabelAlignmentPosAndSpaceModeActive &&
178 0 : ( bSingleSelection || bRelative || pOutlineDlg != 0 ) );
179 :
180 0 : bool bSetDistEmpty = false;
181 0 : bool bSameDistBorderNum = !bLabelAlignmentPosAndSpaceModeActive;
182 0 : bool bSameDist = !bLabelAlignmentPosAndSpaceModeActive;
183 0 : bool bSameIndent = !bLabelAlignmentPosAndSpaceModeActive;
184 0 : bool bSameAdjust = true;
185 :
186 0 : bool bSameLabelFollowedBy = bLabelAlignmentPosAndSpaceModeActive;
187 0 : bool bSameListtab = bLabelAlignmentPosAndSpaceModeActive;
188 0 : bool bSameAlignAt = bLabelAlignmentPosAndSpaceModeActive;
189 0 : bool bSameIndentAt = bLabelAlignmentPosAndSpaceModeActive;
190 :
191 : const SwNumFmt* aNumFmtArr[MAXLEVEL];
192 0 : sal_uInt16 nMask = 1;
193 0 : sal_uInt16 nLvl = USHRT_MAX;
194 0 : long nFirstBorderTextRelative = -1;
195 0 : for(sal_uInt16 i = 0; i < MAXLEVEL; i++)
196 : {
197 0 : aNumFmtArr[i] = &pActNum->Get(i);
198 0 : if(nActNumLvl & nMask)
199 : {
200 0 : if(USHRT_MAX == nLvl)
201 : {
202 0 : nLvl = i;
203 : }
204 :
205 0 : if( i > nLvl)
206 : {
207 0 : bSameAdjust &= aNumFmtArr[i]->GetNumAdjust() == aNumFmtArr[nLvl]->GetNumAdjust();
208 0 : if ( !bLabelAlignmentPosAndSpaceModeActive )
209 : {
210 0 : if(bRelative)
211 : {
212 : const long nBorderTextRelative =
213 0 : aNumFmtArr[i]->GetAbsLSpace() + aNumFmtArr[i]->GetFirstLineOffset() -
214 0 : aNumFmtArr[i - 1]->GetAbsLSpace() + aNumFmtArr[i - 1]->GetFirstLineOffset();
215 0 : if (nFirstBorderTextRelative == -1)
216 0 : nFirstBorderTextRelative = nBorderTextRelative;
217 : else
218 0 : bSameDistBorderNum &= nFirstBorderTextRelative == nBorderTextRelative;
219 : }
220 : else
221 : {
222 : bSameDistBorderNum &=
223 0 : aNumFmtArr[i]->GetAbsLSpace() - aNumFmtArr[i]->GetFirstLineOffset() ==
224 0 : aNumFmtArr[i - 1]->GetAbsLSpace() - aNumFmtArr[i - 1]->GetFirstLineOffset();
225 : }
226 :
227 0 : bSameDist &= aNumFmtArr[i]->GetCharTextDistance() == aNumFmtArr[nLvl]->GetCharTextDistance();
228 0 : bSameIndent &= aNumFmtArr[i]->GetFirstLineOffset() == aNumFmtArr[nLvl]->GetFirstLineOffset();
229 : }
230 : else
231 : {
232 : bSameLabelFollowedBy &=
233 0 : aNumFmtArr[i]->GetLabelFollowedBy() == aNumFmtArr[nLvl]->GetLabelFollowedBy();
234 : bSameListtab &=
235 0 : aNumFmtArr[i]->GetListtabPos() == aNumFmtArr[nLvl]->GetListtabPos();
236 : bSameAlignAt &=
237 0 : ( ( aNumFmtArr[i]->GetIndentAt() + aNumFmtArr[i]->GetFirstLineIndent() )
238 0 : == ( aNumFmtArr[nLvl]->GetIndentAt() + aNumFmtArr[nLvl]->GetFirstLineIndent() ) );
239 : bSameIndentAt &=
240 0 : aNumFmtArr[i]->GetIndentAt() == aNumFmtArr[nLvl]->GetIndentAt();
241 : }
242 : }
243 : }
244 0 : nMask <<= 1;
245 :
246 : }
247 0 : if (MAXLEVEL <= nLvl)
248 : {
249 : OSL_ENSURE(false, "cannot happen.");
250 0 : return;
251 : }
252 0 : if(bSameDistBorderNum)
253 : {
254 : long nDistBorderNum;
255 0 : if(bRelative)
256 : {
257 0 : nDistBorderNum = (long)aNumFmtArr[nLvl]->GetAbsLSpace()+ aNumFmtArr[nLvl]->GetFirstLineOffset();
258 0 : if(nLvl)
259 0 : nDistBorderNum -= (long)aNumFmtArr[nLvl - 1]->GetAbsLSpace()+ aNumFmtArr[nLvl - 1]->GetFirstLineOffset();
260 : }
261 : else
262 : {
263 0 : nDistBorderNum = (long)aNumFmtArr[nLvl]->GetAbsLSpace()+ aNumFmtArr[nLvl]->GetFirstLineOffset();
264 : }
265 0 : m_pDistBorderMF->SetValue(m_pDistBorderMF->Normalize(nDistBorderNum),FUNIT_TWIP);
266 : }
267 : else
268 0 : bSetDistEmpty = true;
269 :
270 0 : if(bSameDist)
271 0 : m_pDistNumMF->SetValue(m_pDistNumMF->Normalize(aNumFmtArr[nLvl]->GetCharTextDistance()), FUNIT_TWIP);
272 : else
273 0 : m_pDistNumMF->SetText(aEmptyOUStr);
274 0 : if(bSameIndent)
275 0 : m_pIndentMF->SetValue(m_pIndentMF->Normalize(-aNumFmtArr[nLvl]->GetFirstLineOffset()), FUNIT_TWIP);
276 : else
277 0 : m_pIndentMF->SetText(aEmptyOUStr);
278 :
279 0 : if(bSameAdjust)
280 : {
281 0 : sal_Int32 nPos = 1; // centered
282 0 : if(aNumFmtArr[nLvl]->GetNumAdjust() == SVX_ADJUST_LEFT)
283 0 : nPos = 0;
284 0 : else if(aNumFmtArr[nLvl]->GetNumAdjust() == SVX_ADJUST_RIGHT)
285 0 : nPos = 2;
286 0 : m_pAlignLB->SelectEntryPos(nPos);
287 0 : m_pAlign2LB->SelectEntryPos( nPos );
288 : }
289 : else
290 : {
291 0 : m_pAlignLB->SetNoSelection();
292 0 : m_pAlign2LB->SetNoSelection();
293 : }
294 :
295 0 : if ( bSameLabelFollowedBy )
296 : {
297 0 : sal_Int32 nPos = 0; // LISTTAB
298 0 : if ( aNumFmtArr[nLvl]->GetLabelFollowedBy() == SvxNumberFormat::SPACE )
299 : {
300 0 : nPos = 1;
301 : }
302 0 : else if ( aNumFmtArr[nLvl]->GetLabelFollowedBy() == SvxNumberFormat::NOTHING )
303 : {
304 0 : nPos = 2;
305 : }
306 0 : m_pLabelFollowedByLB->SelectEntryPos( nPos );
307 : }
308 : else
309 : {
310 0 : m_pLabelFollowedByLB->SetNoSelection();
311 : }
312 :
313 0 : if ( aNumFmtArr[nLvl]->GetLabelFollowedBy() == SvxNumberFormat::LISTTAB )
314 : {
315 0 : m_pListtabFT->Enable( true );
316 0 : m_pListtabMF->Enable( true );
317 0 : if ( bSameListtab )
318 : {
319 0 : m_pListtabMF->SetValue(m_pListtabMF->Normalize(aNumFmtArr[nLvl]->GetListtabPos()),FUNIT_TWIP);
320 : }
321 : else
322 : {
323 0 : m_pListtabMF->SetText(aEmptyOUStr);
324 : }
325 : }
326 : else
327 : {
328 0 : m_pListtabFT->Enable( false );
329 0 : m_pListtabMF->Enable( false );
330 0 : m_pListtabMF->SetText(aEmptyOUStr);
331 : }
332 :
333 0 : if ( bSameAlignAt )
334 : {
335 : m_pAlignedAtMF->SetValue(
336 0 : m_pAlignedAtMF->Normalize( aNumFmtArr[nLvl]->GetIndentAt() +
337 0 : aNumFmtArr[nLvl]->GetFirstLineIndent()),
338 0 : FUNIT_TWIP );
339 : }
340 : else
341 : {
342 0 : m_pAlignedAtMF->SetText(aEmptyOUStr);
343 : }
344 :
345 0 : if ( bSameIndentAt )
346 : {
347 : m_pIndentAtMF->SetValue(
348 0 : m_pIndentAtMF->Normalize( aNumFmtArr[nLvl]->GetIndentAt()), FUNIT_TWIP );
349 : }
350 : else
351 : {
352 0 : m_pIndentAtMF->SetText(aEmptyOUStr);
353 : }
354 :
355 0 : if(bSetDistEmpty)
356 0 : m_pDistBorderMF->SetText(aEmptyOUStr);
357 :
358 0 : bInInintControl = sal_False;
359 : }
360 :
361 0 : void SwNumPositionTabPage::ActivatePage(const SfxItemSet& )
362 : {
363 : const SfxPoolItem* pItem;
364 : sal_uInt16 nTmpNumLvl =
365 0 : pOutlineDlg ? pOutlineDlg->GetActNumLevel() : 0;
366 0 : const SfxItemSet* pExampleSet = GetTabDialog()->GetExampleSet();
367 0 : if(pExampleSet && pExampleSet->GetItemState(FN_PARAM_NUM_PRESET, false, &pItem))
368 : {
369 0 : bPreset = ((const SfxBoolItem*)pItem)->GetValue();
370 : }
371 0 : bModified = (!pActNum->GetNumFmt( 0 ) || bPreset);
372 0 : if(*pActNum != *pSaveNum ||
373 0 : nActNumLvl != nTmpNumLvl )
374 : {
375 0 : *pActNum = *pSaveNum;
376 0 : nActNumLvl = nTmpNumLvl;
377 0 : sal_uInt16 nMask = 1;
378 0 : m_pLevelLB->SetUpdateMode(false);
379 0 : m_pLevelLB->SetNoSelection();
380 0 : m_pLevelLB->SelectEntryPos( MAXLEVEL, nActNumLvl == USHRT_MAX);
381 0 : if(nActNumLvl != USHRT_MAX)
382 0 : for(sal_uInt16 i = 0; i < MAXLEVEL; i++)
383 : {
384 0 : if(nActNumLvl & nMask)
385 0 : m_pLevelLB->SelectEntryPos( i, true);
386 0 : nMask <<= 1 ;
387 : }
388 0 : m_pLevelLB->SetUpdateMode(true);
389 :
390 0 : InitPosAndSpaceMode();
391 0 : ShowControlsDependingOnPosAndSpaceMode();
392 :
393 0 : InitControls();
394 : }
395 0 : m_pRelativeCB->Enable(1 != nActNumLvl);
396 0 : m_pPreviewWIN->Invalidate();
397 0 : }
398 :
399 0 : int SwNumPositionTabPage::DeactivatePage(SfxItemSet *_pSet)
400 : {
401 0 : SwOutlineTabDialog::SetActNumLevel(nActNumLvl);
402 0 : if(_pSet)
403 0 : FillItemSet(*_pSet);
404 0 : return sal_True;
405 :
406 : }
407 :
408 0 : bool SwNumPositionTabPage::FillItemSet( SfxItemSet& rSet )
409 : {
410 0 : if(pOutlineDlg)
411 0 : *pOutlineDlg->GetNumRule() = *pActNum;
412 0 : else if(bModified && pActNum)
413 : {
414 0 : *pSaveNum = *pActNum;
415 0 : rSet.Put(SwUINumRuleItem( *pSaveNum ));
416 0 : rSet.Put(SfxBoolItem(FN_PARAM_NUM_PRESET, false));
417 : }
418 0 : return bModified;
419 : }
420 :
421 0 : void SwNumPositionTabPage::Reset( const SfxItemSet& rSet )
422 : {
423 : const SfxPoolItem* pItem;
424 0 : if(pOutlineDlg)
425 : {
426 0 : pSaveNum = pOutlineDlg->GetNumRule();
427 0 : m_pLevelLB->EnableMultiSelection(false);
428 : }
429 0 : else if(SFX_ITEM_SET == rSet.GetItemState(FN_PARAM_ACT_NUMBER, false, &pItem))
430 0 : pSaveNum = ((SwUINumRuleItem*)pItem)->GetNumRule();
431 :
432 0 : nActNumLvl = SwOutlineTabDialog::GetActNumLevel();
433 0 : sal_uInt16 nMask = 1;
434 0 : m_pLevelLB->SetUpdateMode(false);
435 0 : m_pLevelLB->SetNoSelection();
436 0 : if(nActNumLvl == USHRT_MAX)
437 : {
438 0 : m_pLevelLB->SelectEntryPos( MAXLEVEL, true);
439 : }
440 : else
441 0 : for(sal_uInt16 i = 0; i < MAXLEVEL; i++)
442 : {
443 0 : if(nActNumLvl & nMask)
444 0 : m_pLevelLB->SelectEntryPos( i, true);
445 0 : nMask <<= 1;
446 : }
447 0 : m_pLevelLB->SetUpdateMode(true);
448 :
449 0 : if(!pActNum)
450 0 : pActNum = new SwNumRule(*pSaveNum);
451 0 : else if(*pSaveNum != *pActNum)
452 0 : *pActNum = *pSaveNum;
453 0 : m_pPreviewWIN->SetNumRule(pActNum);
454 0 : InitPosAndSpaceMode();
455 0 : ShowControlsDependingOnPosAndSpaceMode();
456 0 : InitControls();
457 0 : bModified = sal_False;
458 0 : }
459 :
460 0 : void SwNumPositionTabPage::InitPosAndSpaceMode()
461 : {
462 0 : if ( pActNum == 0 )
463 : {
464 : OSL_FAIL( "<SwNumPositionTabPage::InitPosAndSpaceMode()> - misusage of method -> <pAktNum> has to be already set!" );
465 0 : return;
466 : }
467 :
468 : SvxNumberFormat::SvxNumPositionAndSpaceMode ePosAndSpaceMode =
469 0 : SvxNumberFormat::LABEL_ALIGNMENT;
470 0 : sal_uInt16 nMask = 1;
471 0 : for( sal_uInt16 i = 0; i < MAXLEVEL; ++i )
472 : {
473 0 : if(nActNumLvl & nMask)
474 : {
475 0 : SvxNumberFormat aNumFmt( pActNum->Get(i) );
476 0 : ePosAndSpaceMode = aNumFmt.GetPositionAndSpaceMode();
477 0 : if ( ePosAndSpaceMode == SvxNumberFormat::LABEL_ALIGNMENT )
478 : {
479 0 : break;
480 0 : }
481 : }
482 0 : nMask <<= 1;
483 : }
484 :
485 : bLabelAlignmentPosAndSpaceModeActive =
486 0 : ePosAndSpaceMode == SvxNumberFormat::LABEL_ALIGNMENT;
487 : }
488 :
489 0 : void SwNumPositionTabPage::ShowControlsDependingOnPosAndSpaceMode()
490 : {
491 0 : m_pDistBorderFT->Show( !bLabelAlignmentPosAndSpaceModeActive );
492 0 : m_pDistBorderMF->Show( !bLabelAlignmentPosAndSpaceModeActive );
493 0 : m_pRelativeCB->Show( !bLabelAlignmentPosAndSpaceModeActive );
494 0 : m_pIndentFT->Show( !bLabelAlignmentPosAndSpaceModeActive );
495 0 : m_pIndentMF->Show( !bLabelAlignmentPosAndSpaceModeActive );
496 0 : m_pDistNumFT->Show( !bLabelAlignmentPosAndSpaceModeActive );
497 0 : m_pDistNumMF->Show( !bLabelAlignmentPosAndSpaceModeActive );
498 0 : m_pAlignFT->Show( !bLabelAlignmentPosAndSpaceModeActive );
499 0 : m_pAlignLB->Show( !bLabelAlignmentPosAndSpaceModeActive );
500 :
501 0 : m_pLabelFollowedByFT->Show( bLabelAlignmentPosAndSpaceModeActive );
502 0 : m_pLabelFollowedByLB->Show( bLabelAlignmentPosAndSpaceModeActive );
503 0 : m_pListtabFT->Show( bLabelAlignmentPosAndSpaceModeActive );
504 0 : m_pListtabMF->Show( bLabelAlignmentPosAndSpaceModeActive );
505 0 : m_pAlign2FT->Show( bLabelAlignmentPosAndSpaceModeActive );
506 0 : m_pAlign2LB->Show( bLabelAlignmentPosAndSpaceModeActive );
507 0 : m_pAlignedAtFT->Show( bLabelAlignmentPosAndSpaceModeActive );
508 0 : m_pAlignedAtMF->Show( bLabelAlignmentPosAndSpaceModeActive );
509 0 : m_pIndentAtFT->Show( bLabelAlignmentPosAndSpaceModeActive );
510 0 : m_pIndentAtMF->Show( bLabelAlignmentPosAndSpaceModeActive );
511 0 : }
512 :
513 0 : SfxTabPage* SwNumPositionTabPage::Create( Window* pParent,
514 : const SfxItemSet& rAttrSet)
515 : {
516 0 : return new SwNumPositionTabPage(pParent, rAttrSet);
517 : }
518 :
519 0 : void SwNumPositionTabPage::SetWrtShell(SwWrtShell* pSh)
520 : {
521 0 : pWrtSh = pSh;
522 :
523 0 : const SwTwips nWidth = pWrtSh->GetAnyCurRect(RECT_FRM).Width();
524 :
525 0 : m_pDistBorderMF->SetMax(m_pDistBorderMF->Normalize( nWidth ), FUNIT_TWIP );
526 0 : m_pDistNumMF->SetMax(m_pDistNumMF->Normalize( nWidth ), FUNIT_TWIP);
527 0 : m_pIndentMF->SetMax(m_pIndentMF->Normalize( nWidth ), FUNIT_TWIP );
528 0 : m_pListtabMF->SetMax(m_pListtabMF->Normalize( nWidth ), FUNIT_TWIP );
529 0 : m_pAlignedAtMF->SetMax(m_pAlignedAtMF->Normalize( nWidth ), FUNIT_TWIP );
530 0 : m_pIndentAtMF->SetMax(m_pIndentAtMF->Normalize( nWidth ), FUNIT_TWIP );
531 0 : const SwTwips nLast2 = nWidth /2;
532 0 : m_pDistBorderMF->SetLast( m_pDistBorderMF->Normalize( nLast2 ), FUNIT_TWIP );
533 0 : m_pDistNumMF->SetLast(m_pDistNumMF->Normalize( nLast2 ), FUNIT_TWIP);
534 0 : m_pIndentMF->SetLast(m_pIndentMF->Normalize( nLast2 ), FUNIT_TWIP );
535 0 : m_pListtabMF->SetLast(m_pListtabMF->Normalize( nLast2 ), FUNIT_TWIP );
536 0 : m_pAlignedAtMF->SetLast(m_pAlignedAtMF->Normalize( nLast2 ), FUNIT_TWIP );
537 0 : m_pIndentAtMF->SetLast(m_pIndentAtMF->Normalize( nLast2 ), FUNIT_TWIP );
538 :
539 0 : const SwRect& rPrtRect = pWrtSh->GetAnyCurRect(RECT_PAGE);
540 0 : m_pPreviewWIN->SetPageWidth(rPrtRect.Width());
541 0 : FieldUnit eMetric = ::GetDfltMetric(0 != PTR_CAST(SwWebView, &pWrtSh->GetView()));
542 0 : if(eMetric == FUNIT_MM)
543 : {
544 0 : m_pDistBorderMF->SetDecimalDigits(1);
545 0 : m_pDistNumMF->SetDecimalDigits(1);
546 0 : m_pIndentMF->SetDecimalDigits(1);
547 0 : m_pListtabMF->SetDecimalDigits(1);
548 0 : m_pAlignedAtMF->SetDecimalDigits(1);
549 0 : m_pIndentAtMF->SetDecimalDigits(1);
550 : }
551 0 : m_pDistBorderMF->SetUnit( eMetric );
552 0 : m_pDistNumMF->SetUnit( eMetric );
553 0 : m_pIndentMF->SetUnit( eMetric );
554 0 : m_pListtabMF->SetUnit( eMetric );
555 0 : m_pAlignedAtMF->SetUnit( eMetric );
556 0 : m_pIndentAtMF->SetUnit( eMetric );
557 0 : }
558 :
559 0 : IMPL_LINK_NOARG(SwNumPositionTabPage, EditModifyHdl)
560 : {
561 0 : sal_uInt16 nMask = 1;
562 0 : for(sal_uInt16 i = 0; i < MAXLEVEL; i++)
563 : {
564 0 : if(nActNumLvl & nMask)
565 : {
566 0 : SwNumFmt aNumFmt(pActNum->Get(i));
567 :
568 0 : const sal_Int32 nPos = m_pAlignLB->IsVisible()
569 0 : ? m_pAlignLB->GetSelectEntryPos()
570 0 : : m_pAlign2LB->GetSelectEntryPos();
571 0 : SvxAdjust eAdjust = SVX_ADJUST_CENTER;
572 0 : if(nPos == 0)
573 0 : eAdjust = SVX_ADJUST_LEFT;
574 0 : else if(nPos == 2)
575 0 : eAdjust = SVX_ADJUST_RIGHT;
576 0 : aNumFmt.SetNumAdjust( eAdjust );
577 0 : pActNum->Set(i, aNumFmt);
578 : }
579 0 : nMask <<= 1;
580 : }
581 0 : SetModified();
582 0 : return 0;
583 : }
584 :
585 0 : IMPL_LINK( SwNumPositionTabPage, LevelHdl, ListBox *, pBox )
586 : {
587 0 : sal_uInt16 nSaveNumLvl = nActNumLvl;
588 0 : nActNumLvl = 0;
589 0 : if(pBox->IsEntryPosSelected( MAXLEVEL ) &&
590 0 : (pBox->GetSelectEntryCount() == 1 || nSaveNumLvl != 0xffff))
591 : {
592 0 : nActNumLvl = 0xFFFF;
593 0 : pBox->SetUpdateMode(false);
594 0 : for( sal_uInt16 i = 0; i < MAXLEVEL; i++ )
595 0 : pBox->SelectEntryPos( i, false );
596 0 : pBox->SetUpdateMode(true);
597 : }
598 0 : else if(pBox->GetSelectEntryCount())
599 : {
600 0 : sal_uInt16 nMask = 1;
601 0 : for( sal_uInt16 i = 0; i < MAXLEVEL; i++ )
602 : {
603 0 : if(pBox->IsEntryPosSelected( i ))
604 0 : nActNumLvl |= nMask;
605 0 : nMask <<= 1;
606 : }
607 0 : pBox->SelectEntryPos( MAXLEVEL, false );
608 : }
609 : else
610 : {
611 0 : nActNumLvl = nSaveNumLvl;
612 0 : sal_uInt16 nMask = 1;
613 0 : for( sal_uInt16 i = 0; i < MAXLEVEL; i++ )
614 : {
615 0 : if(nActNumLvl & nMask)
616 : {
617 0 : pBox->SelectEntryPos(i);
618 0 : break;
619 : }
620 0 : nMask <<=1;
621 : }
622 : }
623 0 : m_pRelativeCB->Enable(1 != nActNumLvl);
624 0 : SetModified();
625 0 : InitPosAndSpaceMode();
626 0 : ShowControlsDependingOnPosAndSpaceMode();
627 0 : InitControls();
628 0 : return 0;
629 : }
630 :
631 0 : IMPL_LINK( SwNumPositionTabPage, DistanceHdl, MetricField *, pFld )
632 : {
633 0 : if(bInInintControl)
634 0 : return 0;
635 0 : long nValue = static_cast< long >(pFld->Denormalize(pFld->GetValue(FUNIT_TWIP)));
636 0 : sal_uInt16 nMask = 1;
637 0 : for(sal_uInt16 i = 0; i < MAXLEVEL; i++)
638 : {
639 0 : if(nActNumLvl & nMask)
640 : {
641 0 : SwNumFmt aNumFmt( pActNum->Get( i ) );
642 0 : if(pFld == m_pDistBorderMF)
643 : {
644 :
645 0 : if(m_pRelativeCB->IsChecked() && m_pRelativeCB->IsEnabled())
646 : {
647 0 : if(0 == i)
648 : {
649 0 : long nTmp = aNumFmt.GetFirstLineOffset();
650 0 : aNumFmt.SetAbsLSpace( nValue - nTmp );
651 : }
652 : else
653 : {
654 0 : long nTmp = pActNum->Get( i - 1 ).GetAbsLSpace() +
655 0 : pActNum->Get( i - 1 ).GetFirstLineOffset() -
656 0 : pActNum->Get( i ).GetFirstLineOffset();
657 :
658 0 : aNumFmt.SetAbsLSpace( nValue + nTmp );
659 : }
660 : }
661 : else
662 : {
663 0 : aNumFmt.SetAbsLSpace( (short)nValue - aNumFmt.GetFirstLineOffset());
664 : }
665 : }
666 0 : else if (pFld == m_pDistNumMF)
667 : {
668 0 : aNumFmt.SetCharTextDistance( nValue );
669 : }
670 0 : else if (pFld == m_pIndentMF)
671 : {
672 : // now AbsLSpace also has to be modified by FirstLineOffset
673 0 : long nDiff = nValue + aNumFmt.GetFirstLineOffset();
674 0 : long nAbsLSpace = aNumFmt.GetAbsLSpace();
675 0 : aNumFmt.SetAbsLSpace( nAbsLSpace + nDiff );
676 0 : aNumFmt.SetFirstLineOffset( -nValue );
677 : }
678 :
679 0 : pActNum->Set( i, aNumFmt );
680 : }
681 0 : nMask <<= 1;
682 : }
683 :
684 0 : SetModified();
685 0 : if(!m_pDistBorderMF->IsEnabled())
686 0 : m_pDistBorderMF->SetText(aEmptyOUStr);
687 :
688 0 : return 0;
689 : }
690 :
691 0 : IMPL_LINK( SwNumPositionTabPage, RelativeHdl, CheckBox *, pBox )
692 : {
693 0 : sal_Bool bOn = pBox->IsChecked();
694 0 : bool bSingleSelection = m_pLevelLB->GetSelectEntryCount() == 1 && USHRT_MAX != nActNumLvl;
695 0 : bool bSetValue = false;
696 0 : long nValue = 0;
697 0 : if(bOn || bSingleSelection)
698 : {
699 0 : sal_uInt16 nMask = 1;
700 0 : bool bFirst = true;
701 0 : bSetValue = true;
702 0 : for(sal_uInt16 i = 0; i < MAXLEVEL; i++)
703 : {
704 0 : if(nActNumLvl & nMask)
705 : {
706 0 : const SwNumFmt &rNumFmt = pActNum->Get(i);
707 0 : if(bFirst)
708 : {
709 0 : nValue = rNumFmt.GetAbsLSpace();
710 0 : if(bOn && i)
711 0 : nValue -= pActNum->Get(i - 1).GetAbsLSpace();
712 : }
713 : else
714 0 : bSetValue = nValue == rNumFmt.GetAbsLSpace() - pActNum->Get(i - 1).GetAbsLSpace();
715 0 : bFirst = false;
716 : }
717 0 : nMask <<= 1;
718 : }
719 :
720 : }
721 0 : if(bSetValue)
722 0 : m_pDistBorderMF->SetValue(m_pDistBorderMF->Normalize(nValue), FUNIT_TWIP);
723 : else
724 0 : m_pDistBorderMF->SetText(aEmptyOUStr);
725 0 : m_pDistBorderMF->Enable(bOn || bSingleSelection||0 != pOutlineDlg);
726 0 : bLastRelative = bOn;
727 0 : return 0;
728 : }
729 :
730 0 : IMPL_LINK_NOARG(SwNumPositionTabPage, LabelFollowedByHdl_Impl)
731 : {
732 : // determine value to be set at the chosen list levels
733 0 : SvxNumberFormat::LabelFollowedBy eLabelFollowedBy = SvxNumberFormat::LISTTAB;
734 : {
735 0 : const sal_Int32 nPos = m_pLabelFollowedByLB->GetSelectEntryPos();
736 0 : if ( nPos == 1 )
737 : {
738 0 : eLabelFollowedBy = SvxNumberFormat::SPACE;
739 : }
740 0 : else if ( nPos == 2 )
741 : {
742 0 : eLabelFollowedBy = SvxNumberFormat::NOTHING;
743 : }
744 : }
745 :
746 : // set value at the chosen list levels
747 0 : bool bSameListtabPos = true;
748 0 : sal_uInt16 nFirstLvl = USHRT_MAX;
749 0 : sal_uInt16 nMask = 1;
750 0 : for( sal_uInt16 i = 0; i < MAXLEVEL; ++i )
751 : {
752 0 : if ( nActNumLvl & nMask )
753 : {
754 0 : SwNumFmt aNumFmt( pActNum->Get(i) );
755 0 : aNumFmt.SetLabelFollowedBy( eLabelFollowedBy );
756 0 : pActNum->Set( i, aNumFmt );
757 :
758 0 : if ( nFirstLvl == USHRT_MAX )
759 : {
760 0 : nFirstLvl = i;
761 : }
762 : else
763 : {
764 0 : bSameListtabPos &= aNumFmt.GetListtabPos() ==
765 0 : pActNum->Get( nFirstLvl ).GetListtabPos();
766 0 : }
767 : }
768 0 : nMask <<= 1;
769 : }
770 :
771 : // enable/disable metric field for list tab stop position depending on
772 : // selected item following the list label.
773 0 : m_pListtabFT->Enable( eLabelFollowedBy == SvxNumberFormat::LISTTAB );
774 0 : m_pListtabMF->Enable( eLabelFollowedBy == SvxNumberFormat::LISTTAB );
775 0 : if ( bSameListtabPos && eLabelFollowedBy == SvxNumberFormat::LISTTAB )
776 : {
777 : m_pListtabMF->SetValue(
778 0 : m_pListtabMF->Normalize( pActNum->Get( nFirstLvl ).GetListtabPos() ),
779 0 : FUNIT_TWIP );
780 : }
781 : else
782 : {
783 0 : m_pListtabMF->SetText( OUString() );
784 : }
785 :
786 0 : SetModified();
787 :
788 0 : return 0;
789 : }
790 :
791 0 : IMPL_LINK( SwNumPositionTabPage, ListtabPosHdl_Impl, MetricField*, pFld )
792 : {
793 : // determine value to be set at the chosen list levels
794 0 : const long nValue = static_cast< long >(pFld->Denormalize(pFld->GetValue(FUNIT_TWIP)));
795 :
796 : // set value at the chosen list levels
797 0 : sal_uInt16 nMask = 1;
798 0 : for( sal_uInt16 i = 0; i < MAXLEVEL; ++i )
799 : {
800 0 : if ( nActNumLvl & nMask )
801 : {
802 0 : SwNumFmt aNumFmt( pActNum->Get(i) );
803 0 : aNumFmt.SetListtabPos( nValue );
804 0 : pActNum->Set( i, aNumFmt );
805 : }
806 0 : nMask <<= 1;
807 : }
808 :
809 0 : SetModified();
810 :
811 0 : return 0;
812 : }
813 :
814 0 : IMPL_LINK( SwNumPositionTabPage, AlignAtHdl_Impl, MetricField*, pFld )
815 : {
816 : // determine value to be set at the chosen list levels
817 0 : const long nValue = static_cast< long >(pFld->Denormalize(pFld->GetValue(FUNIT_TWIP)));
818 :
819 : // set value at the chosen list levels
820 0 : sal_uInt16 nMask = 1;
821 0 : for( sal_uInt16 i = 0; i < MAXLEVEL; ++i )
822 : {
823 0 : if ( nActNumLvl & nMask )
824 : {
825 0 : SwNumFmt aNumFmt( pActNum->Get(i) );
826 0 : const long nFirstLineIndent = nValue - aNumFmt.GetIndentAt();
827 0 : aNumFmt.SetFirstLineIndent( nFirstLineIndent );
828 0 : pActNum->Set( i, aNumFmt );
829 : }
830 0 : nMask <<= 1;
831 : }
832 :
833 0 : SetModified();
834 :
835 0 : return 0;
836 : }
837 :
838 0 : IMPL_LINK( SwNumPositionTabPage, IndentAtHdl_Impl, MetricField*, pFld )
839 : {
840 : // determine value to be set at the chosen list levels
841 0 : const long nValue = static_cast< long >(pFld->Denormalize(pFld->GetValue(FUNIT_TWIP)));
842 :
843 : // set value at the chosen list levels
844 0 : sal_uInt16 nMask = 1;
845 0 : for( sal_uInt16 i = 0; i < MAXLEVEL; ++i )
846 : {
847 0 : if ( nActNumLvl & nMask )
848 : {
849 0 : SwNumFmt aNumFmt( pActNum->Get(i) );
850 0 : const long nAlignedAt = aNumFmt.GetIndentAt() +
851 0 : aNumFmt.GetFirstLineIndent();
852 0 : aNumFmt.SetIndentAt( nValue );
853 0 : const long nNewFirstLineIndent = nAlignedAt - nValue;
854 0 : aNumFmt.SetFirstLineIndent( nNewFirstLineIndent );
855 0 : pActNum->Set( i, aNumFmt );
856 : }
857 0 : nMask <<= 1;
858 : }
859 :
860 0 : SetModified();
861 :
862 0 : return 0;
863 : }
864 :
865 0 : IMPL_LINK_NOARG(SwNumPositionTabPage, StandardHdl)
866 : {
867 0 : sal_uInt16 nMask = 1;
868 0 : for(sal_uInt16 i = 0; i < MAXLEVEL; i++)
869 : {
870 0 : if(nActNumLvl & nMask)
871 : {
872 0 : SwNumFmt aNumFmt( pActNum->Get( i ) );
873 : SwNumRule aTmpNumRule( pWrtSh->GetUniqueNumRuleName(),
874 : aNumFmt.GetPositionAndSpaceMode(),
875 0 : pOutlineDlg ? OUTLINE_RULE : NUM_RULE );
876 0 : SwNumFmt aTempFmt(aTmpNumRule.Get( i ));
877 0 : aNumFmt.SetPositionAndSpaceMode( aTempFmt.GetPositionAndSpaceMode() );
878 0 : if ( aTempFmt.GetPositionAndSpaceMode() == SvxNumberFormat::LABEL_WIDTH_AND_POSITION )
879 : {
880 0 : aNumFmt.SetAbsLSpace( aTempFmt.GetAbsLSpace());
881 0 : aNumFmt.SetCharTextDistance( aTempFmt.GetCharTextDistance() );
882 0 : aNumFmt.SetFirstLineOffset( aTempFmt.GetFirstLineOffset() );
883 : }
884 0 : else if ( aTempFmt.GetPositionAndSpaceMode() == SvxNumberFormat::LABEL_ALIGNMENT )
885 : {
886 0 : aNumFmt.SetNumAdjust( aTempFmt.GetNumAdjust() );
887 0 : aNumFmt.SetLabelFollowedBy( aTempFmt.GetLabelFollowedBy() );
888 0 : aNumFmt.SetListtabPos( aTempFmt.GetListtabPos() );
889 0 : aNumFmt.SetFirstLineIndent( aTempFmt.GetFirstLineIndent() );
890 0 : aNumFmt.SetIndentAt( aTempFmt.GetIndentAt() );
891 : }
892 0 : pActNum->Set( i, aNumFmt );
893 : }
894 0 : nMask <<= 1;
895 : }
896 :
897 0 : InitControls();
898 0 : SetModified();
899 0 : return 0;
900 : }
901 :
902 : #ifdef DBG_UTIL
903 : void SwNumPositionTabPage::SetModified(sal_Bool bRepaint)
904 : {
905 : bModified = sal_True;
906 : if(bRepaint)
907 : {
908 : m_pPreviewWIN->SetLevel(nActNumLvl);
909 : m_pPreviewWIN->Invalidate();
910 : }
911 : }
912 : #endif
913 :
914 0 : SwSvxNumBulletTabDialog::SwSvxNumBulletTabDialog(Window* pParent,
915 : const SfxItemSet* pSwItemSet, SwWrtShell & rSh)
916 : : SfxTabDialog(pParent, "BulletsAndNumberingDialog",
917 : "modules/swriter/ui/bulletsandnumbering.ui",
918 : pSwItemSet)
919 0 : , rWrtSh(rSh)
920 : {
921 0 : GetUserButton()->SetClickHdl(LINK(this, SwSvxNumBulletTabDialog, RemoveNumberingHdl));
922 0 : GetUserButton()->Enable(rWrtSh.GetNumRuleAtCurrCrsrPos() != NULL);
923 0 : m_nSingleNumPageId = AddTabPage("singlenum", RID_SVXPAGE_PICK_SINGLE_NUM );
924 0 : m_nBulletPageId = AddTabPage("bullets", RID_SVXPAGE_PICK_BULLET );
925 0 : AddTabPage("outlinenum", RID_SVXPAGE_PICK_NUM );
926 0 : AddTabPage("graphics", RID_SVXPAGE_PICK_BMP );
927 0 : m_nOptionsPageId = AddTabPage("options", RID_SVXPAGE_NUM_OPTIONS );
928 0 : m_nPositionPageId = AddTabPage("position", RID_SVXPAGE_NUM_POSITION );
929 0 : }
930 :
931 0 : SwSvxNumBulletTabDialog::~SwSvxNumBulletTabDialog()
932 : {
933 0 : }
934 :
935 0 : void SwSvxNumBulletTabDialog::PageCreated(sal_uInt16 nPageId, SfxTabPage& rPage)
936 : {
937 : // set styles' names and metric
938 0 : OUString sNumCharFmt, sBulletCharFmt;
939 0 : SwStyleNameMapper::FillUIName( RES_POOLCHR_NUM_LEVEL, sNumCharFmt );
940 0 : SwStyleNameMapper::FillUIName( RES_POOLCHR_BUL_LEVEL, sBulletCharFmt );
941 :
942 0 : if (nPageId == m_nSingleNumPageId)
943 : {
944 0 : SfxAllItemSet aSet(*(GetInputSetImpl()->GetPool()));
945 0 : aSet.Put (SfxStringItem(SID_NUM_CHAR_FMT,sNumCharFmt));
946 0 : aSet.Put (SfxStringItem(SID_BULLET_CHAR_FMT,sBulletCharFmt));
947 0 : rPage.PageCreated(aSet);
948 : }
949 0 : else if (nPageId == m_nBulletPageId)
950 : {
951 0 : SfxAllItemSet aSet(*(GetInputSetImpl()->GetPool()));
952 0 : aSet.Put (SfxStringItem(SID_BULLET_CHAR_FMT,sBulletCharFmt));
953 0 : rPage.PageCreated(aSet);
954 : }
955 0 : else if (nPageId == m_nOptionsPageId)
956 : {
957 0 : SfxAllItemSet aSet(*(GetInputSetImpl()->GetPool()));
958 0 : aSet.Put (SfxStringItem(SID_NUM_CHAR_FMT,sNumCharFmt));
959 0 : aSet.Put (SfxStringItem(SID_BULLET_CHAR_FMT,sBulletCharFmt));
960 : // collect char styles
961 0 : ListBox rCharFmtLB(this);
962 0 : rCharFmtLB.Clear();
963 0 : rCharFmtLB.InsertEntry( SwViewShell::GetShellRes()->aStrNone );
964 0 : SwDocShell* pDocShell = rWrtSh.GetView().GetDocShell();
965 0 : ::FillCharStyleListBox(rCharFmtLB, pDocShell);
966 :
967 0 : std::vector<OUString> aList;
968 0 : for(sal_Int32 j = 0; j < rCharFmtLB.GetEntryCount(); j++)
969 0 : aList.push_back( rCharFmtLB.GetEntry(j) );
970 :
971 0 : aSet.Put( SfxStringListItem( SID_CHAR_FMT_LIST_BOX,&aList ) ) ;
972 :
973 0 : FieldUnit eMetric = ::GetDfltMetric(0 != PTR_CAST(SwWebDocShell, pDocShell));
974 0 : aSet.Put ( SfxAllEnumItem(SID_METRIC_ITEM, static_cast< sal_uInt16 >(eMetric) ) );
975 0 : rPage.PageCreated(aSet);
976 : }
977 0 : else if (nPageId == m_nPositionPageId)
978 : {
979 0 : SwDocShell* pDocShell = rWrtSh.GetView().GetDocShell();
980 0 : FieldUnit eMetric = ::GetDfltMetric(0 != PTR_CAST(SwWebDocShell, pDocShell));
981 0 : SfxAllItemSet aSet(*(GetInputSetImpl()->GetPool()));
982 0 : aSet.Put ( SfxAllEnumItem(SID_METRIC_ITEM, static_cast< sal_uInt16 >(eMetric)) );
983 0 : rPage.PageCreated(aSet);
984 0 : }
985 0 : }
986 :
987 0 : short SwSvxNumBulletTabDialog::Ok()
988 : {
989 0 : short nRet = SfxTabDialog::Ok();
990 0 : pExampleSet->ClearItem(SID_PARAM_NUM_PRESET);
991 0 : return nRet;
992 : }
993 :
994 0 : IMPL_LINK_NOARG(SwSvxNumBulletTabDialog, RemoveNumberingHdl)
995 : {
996 0 : EndDialog(RET_USER);
997 0 : return 0;
998 0 : }
999 :
1000 : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|