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