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 #ifdef SW_DLLIMPLEMENTATION
27*b1cdbd2cSJim Jagielski #undef SW_DLLIMPLEMENTATION
28*b1cdbd2cSJim Jagielski #endif
29*b1cdbd2cSJim Jagielski #include <hintids.hxx>
30*b1cdbd2cSJim Jagielski #include <tools/shl.hxx>
31*b1cdbd2cSJim Jagielski #ifndef _MENU_HXX //autogen
32*b1cdbd2cSJim Jagielski #include <vcl/menu.hxx>
33*b1cdbd2cSJim Jagielski #endif
34*b1cdbd2cSJim Jagielski #ifndef _MSGBOX_HXX //autogen
35*b1cdbd2cSJim Jagielski #include <vcl/msgbox.hxx>
36*b1cdbd2cSJim Jagielski #endif
37*b1cdbd2cSJim Jagielski #include <sfx2/tabdlg.hxx>
38*b1cdbd2cSJim Jagielski #include <editeng/brshitem.hxx>
39*b1cdbd2cSJim Jagielski #include <unotools/configmgr.hxx>
40*b1cdbd2cSJim Jagielski #include <SwStyleNameMapper.hxx>
41*b1cdbd2cSJim Jagielski
42*b1cdbd2cSJim Jagielski #ifndef _NUM_HXX //autogen
43*b1cdbd2cSJim Jagielski #define USE_NUMTABPAGES
44*b1cdbd2cSJim Jagielski #include <num.hxx>
45*b1cdbd2cSJim Jagielski #endif
46*b1cdbd2cSJim Jagielski #ifndef _VIEW_HXX
47*b1cdbd2cSJim Jagielski #include <view.hxx>
48*b1cdbd2cSJim Jagielski #endif
49*b1cdbd2cSJim Jagielski #ifndef _DOCSH_HXX
50*b1cdbd2cSJim Jagielski #include <docsh.hxx>
51*b1cdbd2cSJim Jagielski #endif
52*b1cdbd2cSJim Jagielski #include <uitool.hxx>
53*b1cdbd2cSJim Jagielski #include <errhdl.hxx>
54*b1cdbd2cSJim Jagielski #include <wrtsh.hxx>
55*b1cdbd2cSJim Jagielski #include <swmodule.hxx>
56*b1cdbd2cSJim Jagielski #include <fmtcol.hxx>
57*b1cdbd2cSJim Jagielski #include <outline.hxx>
58*b1cdbd2cSJim Jagielski #include <uinums.hxx>
59*b1cdbd2cSJim Jagielski #include <poolfmt.hxx>
60*b1cdbd2cSJim Jagielski #include <shellres.hxx>
61*b1cdbd2cSJim Jagielski #include <svl/style.hxx>
62*b1cdbd2cSJim Jagielski #include <charfmt.hxx>
63*b1cdbd2cSJim Jagielski #include <docstyle.hxx>
64*b1cdbd2cSJim Jagielski #include <viewopt.hxx>
65*b1cdbd2cSJim Jagielski #include <svtools/ctrlbox.hxx>
66*b1cdbd2cSJim Jagielski #ifndef _HELPID_H
67*b1cdbd2cSJim Jagielski #include <helpid.h>
68*b1cdbd2cSJim Jagielski #endif
69*b1cdbd2cSJim Jagielski #ifndef _GLOBALS_HRC
70*b1cdbd2cSJim Jagielski #include <globals.hrc> // fuer Vorlagenname 'keins'
71*b1cdbd2cSJim Jagielski #endif
72*b1cdbd2cSJim Jagielski #ifndef _MISC_HRC
73*b1cdbd2cSJim Jagielski #include <misc.hrc>
74*b1cdbd2cSJim Jagielski #endif
75*b1cdbd2cSJim Jagielski #ifndef _OUTLINE_HRC
76*b1cdbd2cSJim Jagielski #include <outline.hrc>
77*b1cdbd2cSJim Jagielski #endif
78*b1cdbd2cSJim Jagielski #include <paratr.hxx>
79*b1cdbd2cSJim Jagielski
80*b1cdbd2cSJim Jagielski #include <unomid.h>
81*b1cdbd2cSJim Jagielski
82*b1cdbd2cSJim Jagielski #include <IDocumentOutlineNodes.hxx>
83*b1cdbd2cSJim Jagielski // --> OD 2008-04-14 #outlinelevel#
84*b1cdbd2cSJim Jagielski #include <app.hrc>
85*b1cdbd2cSJim Jagielski // <--
86*b1cdbd2cSJim Jagielski
87*b1cdbd2cSJim Jagielski #ifndef _COM_SUN_STAR_ACCESSIBILITY_ACCESSIBLEROLE_HPP_
88*b1cdbd2cSJim Jagielski #include <com/sun/star/accessibility/AccessibleRole.hpp>
89*b1cdbd2cSJim Jagielski #endif
90*b1cdbd2cSJim Jagielski
91*b1cdbd2cSJim Jagielski using namespace ::com::sun::star;
92*b1cdbd2cSJim Jagielski
93*b1cdbd2cSJim Jagielski /* -----------------------------31.01.01 10:23--------------------------------
94*b1cdbd2cSJim Jagielski
95*b1cdbd2cSJim Jagielski ---------------------------------------------------------------------------*/
96*b1cdbd2cSJim Jagielski
97*b1cdbd2cSJim Jagielski DBG_NAME(outlinehdl)
98*b1cdbd2cSJim Jagielski
99*b1cdbd2cSJim Jagielski /*---------------------------------------------------------------------
100*b1cdbd2cSJim Jagielski
101*b1cdbd2cSJim Jagielski ---------------------------------------------------------------------*/
102*b1cdbd2cSJim Jagielski
103*b1cdbd2cSJim Jagielski class SwNumNamesDlg: public ModalDialog
104*b1cdbd2cSJim Jagielski {
105*b1cdbd2cSJim Jagielski FixedLine aFormFL;
106*b1cdbd2cSJim Jagielski Edit aFormEdit;
107*b1cdbd2cSJim Jagielski ListBox aFormBox;
108*b1cdbd2cSJim Jagielski OKButton aOKBtn;
109*b1cdbd2cSJim Jagielski CancelButton aCancelBtn;
110*b1cdbd2cSJim Jagielski HelpButton aHelpBtn;
111*b1cdbd2cSJim Jagielski
112*b1cdbd2cSJim Jagielski DECL_LINK( ModifyHdl, Edit * );
113*b1cdbd2cSJim Jagielski DECL_LINK( SelectHdl, ListBox * );
114*b1cdbd2cSJim Jagielski DECL_LINK( DoubleClickHdl, ListBox * );
115*b1cdbd2cSJim Jagielski
116*b1cdbd2cSJim Jagielski public:
117*b1cdbd2cSJim Jagielski SwNumNamesDlg(Window *pParent);
118*b1cdbd2cSJim Jagielski ~SwNumNamesDlg();
119*b1cdbd2cSJim Jagielski void SetUserNames(const String *pList[]);
GetName() const120*b1cdbd2cSJim Jagielski String GetName() const { return aFormEdit.GetText(); }
GetCurEntryPos() const121*b1cdbd2cSJim Jagielski sal_uInt16 GetCurEntryPos() const { return aFormBox.GetSelectEntryPos(); }
122*b1cdbd2cSJim Jagielski };
123*b1cdbd2cSJim Jagielski
124*b1cdbd2cSJim Jagielski /*------------------------------------------------------------------------
125*b1cdbd2cSJim Jagielski Beschreibung: selektierten Eintrag merken
126*b1cdbd2cSJim Jagielski ------------------------------------------------------------------------*/
127*b1cdbd2cSJim Jagielski
128*b1cdbd2cSJim Jagielski
IMPL_LINK_INLINE_START(SwNumNamesDlg,SelectHdl,ListBox *,pBox)129*b1cdbd2cSJim Jagielski IMPL_LINK_INLINE_START( SwNumNamesDlg, SelectHdl, ListBox *, pBox )
130*b1cdbd2cSJim Jagielski {
131*b1cdbd2cSJim Jagielski aFormEdit.SetText(pBox->GetSelectEntry());
132*b1cdbd2cSJim Jagielski aFormEdit.SetSelection(Selection(0, SELECTION_MAX));
133*b1cdbd2cSJim Jagielski return 0;
134*b1cdbd2cSJim Jagielski }
IMPL_LINK_INLINE_END(SwNumNamesDlg,SelectHdl,ListBox *,pBox)135*b1cdbd2cSJim Jagielski IMPL_LINK_INLINE_END( SwNumNamesDlg, SelectHdl, ListBox *, pBox )
136*b1cdbd2cSJim Jagielski
137*b1cdbd2cSJim Jagielski /*------------------------------------------------------------------------
138*b1cdbd2cSJim Jagielski Beschreibung: Setzen der vom Benutzer vergebenen Namen
139*b1cdbd2cSJim Jagielski Parameter: Liste der vom Benutzer vergebenen Namen;
140*b1cdbd2cSJim Jagielski nicht vom Benutzer benannte Positionen sind 0.
141*b1cdbd2cSJim Jagielski ------------------------------------------------------------------------*/
142*b1cdbd2cSJim Jagielski
143*b1cdbd2cSJim Jagielski
144*b1cdbd2cSJim Jagielski void SwNumNamesDlg::SetUserNames(const String *pList[])
145*b1cdbd2cSJim Jagielski {
146*b1cdbd2cSJim Jagielski sal_uInt16 nSelect = 0;
147*b1cdbd2cSJim Jagielski for(sal_uInt16 i = 0; i < SwBaseNumRules::nMaxRules; ++i)
148*b1cdbd2cSJim Jagielski {
149*b1cdbd2cSJim Jagielski if(pList[i])
150*b1cdbd2cSJim Jagielski {
151*b1cdbd2cSJim Jagielski aFormBox.RemoveEntry(i);
152*b1cdbd2cSJim Jagielski aFormBox.InsertEntry(*pList[i], i);
153*b1cdbd2cSJim Jagielski if(i == nSelect && nSelect < SwBaseNumRules::nMaxRules)
154*b1cdbd2cSJim Jagielski nSelect++;
155*b1cdbd2cSJim Jagielski }
156*b1cdbd2cSJim Jagielski }
157*b1cdbd2cSJim Jagielski aFormBox.SelectEntryPos(nSelect);
158*b1cdbd2cSJim Jagielski SelectHdl(&aFormBox);
159*b1cdbd2cSJim Jagielski }
160*b1cdbd2cSJim Jagielski /*------------------------------------------------------------------------
161*b1cdbd2cSJim Jagielski Beschreibung: OK-Button freischalten, wenn Text im Edit steht.
162*b1cdbd2cSJim Jagielski ------------------------------------------------------------------------*/
163*b1cdbd2cSJim Jagielski
164*b1cdbd2cSJim Jagielski
IMPL_LINK_INLINE_START(SwNumNamesDlg,ModifyHdl,Edit *,pBox)165*b1cdbd2cSJim Jagielski IMPL_LINK_INLINE_START( SwNumNamesDlg, ModifyHdl, Edit *, pBox )
166*b1cdbd2cSJim Jagielski {
167*b1cdbd2cSJim Jagielski aOKBtn.Enable(0 != pBox->GetText().Len());
168*b1cdbd2cSJim Jagielski return 0;
169*b1cdbd2cSJim Jagielski }
IMPL_LINK_INLINE_END(SwNumNamesDlg,ModifyHdl,Edit *,pBox)170*b1cdbd2cSJim Jagielski IMPL_LINK_INLINE_END( SwNumNamesDlg, ModifyHdl, Edit *, pBox )
171*b1cdbd2cSJim Jagielski /*------------------------------------------------------------------------
172*b1cdbd2cSJim Jagielski Beschreibung: DoubleClickHdl
173*b1cdbd2cSJim Jagielski ------------------------------------------------------------------------*/
174*b1cdbd2cSJim Jagielski
175*b1cdbd2cSJim Jagielski
176*b1cdbd2cSJim Jagielski IMPL_LINK_INLINE_START( SwNumNamesDlg, DoubleClickHdl, ListBox *, EMPTYARG )
177*b1cdbd2cSJim Jagielski {
178*b1cdbd2cSJim Jagielski EndDialog(RET_OK);
179*b1cdbd2cSJim Jagielski return 0;
180*b1cdbd2cSJim Jagielski }
IMPL_LINK_INLINE_END(SwNumNamesDlg,DoubleClickHdl,ListBox *,EMPTYARG)181*b1cdbd2cSJim Jagielski IMPL_LINK_INLINE_END( SwNumNamesDlg, DoubleClickHdl, ListBox *, EMPTYARG )
182*b1cdbd2cSJim Jagielski
183*b1cdbd2cSJim Jagielski /*--------------------------------------------------
184*b1cdbd2cSJim Jagielski
185*b1cdbd2cSJim Jagielski --------------------------------------------------*/
186*b1cdbd2cSJim Jagielski
187*b1cdbd2cSJim Jagielski SwNumNamesDlg::SwNumNamesDlg(Window *pParent)
188*b1cdbd2cSJim Jagielski : ModalDialog(pParent, SW_RES(DLG_NUM_NAMES)),
189*b1cdbd2cSJim Jagielski aFormFL(this, SW_RES(FL_FORM)),
190*b1cdbd2cSJim Jagielski aFormEdit(this, SW_RES(ED_FORM)),
191*b1cdbd2cSJim Jagielski aFormBox(this, SW_RES(LB_FORM)),
192*b1cdbd2cSJim Jagielski aOKBtn(this, SW_RES(BT_OK)),
193*b1cdbd2cSJim Jagielski aCancelBtn(this, SW_RES(BT_CANCEL)),
194*b1cdbd2cSJim Jagielski aHelpBtn(this, SW_RES(BT_HELP))
195*b1cdbd2cSJim Jagielski {
196*b1cdbd2cSJim Jagielski FreeResource();
197*b1cdbd2cSJim Jagielski aFormEdit.SetModifyHdl(LINK(this, SwNumNamesDlg, ModifyHdl));
198*b1cdbd2cSJim Jagielski aFormBox.SetSelectHdl(LINK(this, SwNumNamesDlg, SelectHdl));
199*b1cdbd2cSJim Jagielski aFormBox.SetDoubleClickHdl(LINK(this, SwNumNamesDlg, DoubleClickHdl));
200*b1cdbd2cSJim Jagielski SelectHdl(&aFormBox);
201*b1cdbd2cSJim Jagielski }
202*b1cdbd2cSJim Jagielski
203*b1cdbd2cSJim Jagielski /*--------------------------------------------------
204*b1cdbd2cSJim Jagielski
205*b1cdbd2cSJim Jagielski --------------------------------------------------*/
206*b1cdbd2cSJim Jagielski
~SwNumNamesDlg()207*b1cdbd2cSJim Jagielski __EXPORT SwNumNamesDlg::~SwNumNamesDlg() {}
208*b1cdbd2cSJim Jagielski
209*b1cdbd2cSJim Jagielski
210*b1cdbd2cSJim Jagielski /* -----------------08.07.98 08:46-------------------
211*b1cdbd2cSJim Jagielski *
212*b1cdbd2cSJim Jagielski * --------------------------------------------------*/
lcl_BitToLevel(sal_uInt16 nActLevel)213*b1cdbd2cSJim Jagielski sal_uInt16 lcl_BitToLevel(sal_uInt16 nActLevel)
214*b1cdbd2cSJim Jagielski {
215*b1cdbd2cSJim Jagielski sal_uInt16 nTmp = nActLevel;
216*b1cdbd2cSJim Jagielski sal_uInt16 nTmpLevel = 0;
217*b1cdbd2cSJim Jagielski while( 0 != (nTmp >>= 1) )
218*b1cdbd2cSJim Jagielski nTmpLevel++;
219*b1cdbd2cSJim Jagielski return nTmpLevel;
220*b1cdbd2cSJim Jagielski }
221*b1cdbd2cSJim Jagielski
222*b1cdbd2cSJim Jagielski /* -----------------07.07.98 14:13-------------------
223*b1cdbd2cSJim Jagielski *
224*b1cdbd2cSJim Jagielski * --------------------------------------------------*/
225*b1cdbd2cSJim Jagielski sal_uInt16 SwOutlineTabDialog::nNumLevel = 1;
SwOutlineTabDialog(Window * pParent,const SfxItemSet * pSwItemSet,SwWrtShell & rSh)226*b1cdbd2cSJim Jagielski SwOutlineTabDialog::SwOutlineTabDialog(Window* pParent,
227*b1cdbd2cSJim Jagielski const SfxItemSet* pSwItemSet,
228*b1cdbd2cSJim Jagielski SwWrtShell &rSh) :
229*b1cdbd2cSJim Jagielski //der UserString wird danach richtig gesetzt
230*b1cdbd2cSJim Jagielski SfxTabDialog(pParent, SW_RES(DLG_TAB_OUTLINE), pSwItemSet, sal_False, &aEmptyStr),
231*b1cdbd2cSJim Jagielski aNullStr(C2S("____")),
232*b1cdbd2cSJim Jagielski aFormMenu(SW_RES(MN_FORM)),
233*b1cdbd2cSJim Jagielski rWrtSh(rSh),
234*b1cdbd2cSJim Jagielski pChapterNumRules(SW_MOD()->GetChapterNumRules()),
235*b1cdbd2cSJim Jagielski bModified(rWrtSh.IsModified())
236*b1cdbd2cSJim Jagielski {
237*b1cdbd2cSJim Jagielski // --> OD 2008-04-14 #outlinelevel#
238*b1cdbd2cSJim Jagielski SetText( SW_RES( STR_OUTLINE_NUMBERING ) );
239*b1cdbd2cSJim Jagielski // <--
240*b1cdbd2cSJim Jagielski PushButton* pUserButton = GetUserButton();
241*b1cdbd2cSJim Jagielski pUserButton->SetText(SW_RES(ST_FORM));
242*b1cdbd2cSJim Jagielski pUserButton->SetHelpId(HID_OUTLINE_FORM);
243*b1cdbd2cSJim Jagielski pUserButton->SetClickHdl(LINK(this, SwOutlineTabDialog, FormHdl));
244*b1cdbd2cSJim Jagielski pUserButton->SetAccessibleRole( com::sun::star::accessibility::AccessibleRole::BUTTON_MENU );
245*b1cdbd2cSJim Jagielski
246*b1cdbd2cSJim Jagielski FreeResource();
247*b1cdbd2cSJim Jagielski pNumRule = new SwNumRule( *rSh.GetOutlineNumRule() );
248*b1cdbd2cSJim Jagielski GetCancelButton().SetClickHdl(LINK(this, SwOutlineTabDialog, CancelHdl));
249*b1cdbd2cSJim Jagielski
250*b1cdbd2cSJim Jagielski AddTabPage(TP_NUM_POSITION , &SwNumPositionTabPage::Create, 0);
251*b1cdbd2cSJim Jagielski AddTabPage(TP_OUTLINE_NUM , &SwOutlineSettingsTabPage::Create, 0);
252*b1cdbd2cSJim Jagielski
253*b1cdbd2cSJim Jagielski String sHeadline;
254*b1cdbd2cSJim Jagielski sal_uInt16 i;
255*b1cdbd2cSJim Jagielski
256*b1cdbd2cSJim Jagielski for( i = 0; i < MAXLEVEL; ++i )
257*b1cdbd2cSJim Jagielski {
258*b1cdbd2cSJim Jagielski // wurde die Vorlage noch nicht angelegt, dann ist sie noch an dieserPosition
259*b1cdbd2cSJim Jagielski if( !rWrtSh.GetParaStyle( sHeadline =
260*b1cdbd2cSJim Jagielski SwStyleNameMapper::GetUIName( static_cast< sal_uInt16 >(RES_POOLCOLL_HEADLINE1 + i),
261*b1cdbd2cSJim Jagielski sHeadline )) )
262*b1cdbd2cSJim Jagielski aCollNames[i] = sHeadline;
263*b1cdbd2cSJim Jagielski }
264*b1cdbd2cSJim Jagielski
265*b1cdbd2cSJim Jagielski // Erfragen der Gliederungsebenen der Textvorlagen
266*b1cdbd2cSJim Jagielski const sal_uInt16 nCount = rWrtSh.GetTxtFmtCollCount();
267*b1cdbd2cSJim Jagielski for(i = 0; i < nCount; ++i )
268*b1cdbd2cSJim Jagielski {
269*b1cdbd2cSJim Jagielski SwTxtFmtColl &rTxtColl = rWrtSh.GetTxtFmtColl(i);
270*b1cdbd2cSJim Jagielski if(!rTxtColl.IsDefault())
271*b1cdbd2cSJim Jagielski {
272*b1cdbd2cSJim Jagielski //sal_uInt8 nOutLevel = rTxtColl.GetOutlineLevel(); //<-#outline level, removed out by zhaojianwei
273*b1cdbd2cSJim Jagielski //if(nOutLevel != NO_NUMBERING)
274*b1cdbd2cSJim Jagielski //->added by zhaojianwei
275*b1cdbd2cSJim Jagielski if(rTxtColl.IsAssignedToListLevelOfOutlineStyle())
276*b1cdbd2cSJim Jagielski {
277*b1cdbd2cSJim Jagielski int nOutLevel = rTxtColl.GetAssignedOutlineStyleLevel();
278*b1cdbd2cSJim Jagielski aCollNames[ nOutLevel ] = rTxtColl.GetName();
279*b1cdbd2cSJim Jagielski }
280*b1cdbd2cSJim Jagielski //<-end
281*b1cdbd2cSJim Jagielski }
282*b1cdbd2cSJim Jagielski }
283*b1cdbd2cSJim Jagielski }
284*b1cdbd2cSJim Jagielski
285*b1cdbd2cSJim Jagielski /* -----------------07.07.98 14:13-------------------
286*b1cdbd2cSJim Jagielski *
287*b1cdbd2cSJim Jagielski * --------------------------------------------------*/
~SwOutlineTabDialog()288*b1cdbd2cSJim Jagielski SwOutlineTabDialog::~SwOutlineTabDialog()
289*b1cdbd2cSJim Jagielski {
290*b1cdbd2cSJim Jagielski delete pNumRule;
291*b1cdbd2cSJim Jagielski }
292*b1cdbd2cSJim Jagielski
293*b1cdbd2cSJim Jagielski /* -----------------07.07.98 14:13-------------------
294*b1cdbd2cSJim Jagielski *
295*b1cdbd2cSJim Jagielski * --------------------------------------------------*/
PageCreated(sal_uInt16 nPageId,SfxTabPage & rPage)296*b1cdbd2cSJim Jagielski void SwOutlineTabDialog::PageCreated(sal_uInt16 nPageId, SfxTabPage& rPage)
297*b1cdbd2cSJim Jagielski {
298*b1cdbd2cSJim Jagielski switch ( nPageId )
299*b1cdbd2cSJim Jagielski {
300*b1cdbd2cSJim Jagielski case TP_NUM_POSITION:
301*b1cdbd2cSJim Jagielski ((SwNumPositionTabPage&)rPage).SetWrtShell(&rWrtSh);
302*b1cdbd2cSJim Jagielski ((SwNumPositionTabPage&)rPage).SetOutlineTabDialog(this);
303*b1cdbd2cSJim Jagielski break;
304*b1cdbd2cSJim Jagielski case TP_OUTLINE_NUM:
305*b1cdbd2cSJim Jagielski ((SwOutlineSettingsTabPage&)rPage).SetWrtShell(&rWrtSh);
306*b1cdbd2cSJim Jagielski break;
307*b1cdbd2cSJim Jagielski }
308*b1cdbd2cSJim Jagielski }
309*b1cdbd2cSJim Jagielski /* -----------------07.07.98 14:19-------------------
310*b1cdbd2cSJim Jagielski *
311*b1cdbd2cSJim Jagielski * --------------------------------------------------*/
IMPL_LINK(SwOutlineTabDialog,CancelHdl,Button *,EMPTYARG)312*b1cdbd2cSJim Jagielski IMPL_LINK( SwOutlineTabDialog, CancelHdl, Button *, EMPTYARG )
313*b1cdbd2cSJim Jagielski {
314*b1cdbd2cSJim Jagielski if (!bModified)
315*b1cdbd2cSJim Jagielski rWrtSh.ResetModified();
316*b1cdbd2cSJim Jagielski EndDialog(RET_CANCEL);
317*b1cdbd2cSJim Jagielski return 0;
318*b1cdbd2cSJim Jagielski }
319*b1cdbd2cSJim Jagielski /* -----------------08.07.98 12:14-------------------
320*b1cdbd2cSJim Jagielski *
321*b1cdbd2cSJim Jagielski * --------------------------------------------------*/
IMPL_LINK(SwOutlineTabDialog,FormHdl,Button *,pBtn)322*b1cdbd2cSJim Jagielski IMPL_LINK( SwOutlineTabDialog, FormHdl, Button *, pBtn )
323*b1cdbd2cSJim Jagielski {
324*b1cdbd2cSJim Jagielski //PopupMenu auffuellen
325*b1cdbd2cSJim Jagielski for( sal_uInt16 i = 0; i < SwChapterNumRules::nMaxRules; ++i )
326*b1cdbd2cSJim Jagielski {
327*b1cdbd2cSJim Jagielski const SwNumRulesWithName *pRules = pChapterNumRules->GetRules(i);
328*b1cdbd2cSJim Jagielski if( pRules )
329*b1cdbd2cSJim Jagielski aFormMenu.SetItemText(i + MN_FORMBASE, pRules->GetName());
330*b1cdbd2cSJim Jagielski }
331*b1cdbd2cSJim Jagielski aFormMenu.SetSelectHdl(LINK(this, SwOutlineTabDialog, MenuSelectHdl));
332*b1cdbd2cSJim Jagielski aFormMenu.Execute(pBtn, Rectangle(Point(0,0), pBtn->GetSizePixel()), POPUPMENU_EXECUTE_DOWN);
333*b1cdbd2cSJim Jagielski return 0;
334*b1cdbd2cSJim Jagielski }
335*b1cdbd2cSJim Jagielski
336*b1cdbd2cSJim Jagielski /* -----------------08.07.98 12:14-------------------
337*b1cdbd2cSJim Jagielski *
338*b1cdbd2cSJim Jagielski * --------------------------------------------------*/
IMPL_LINK(SwOutlineTabDialog,MenuSelectHdl,Menu *,pMenu)339*b1cdbd2cSJim Jagielski IMPL_LINK( SwOutlineTabDialog, MenuSelectHdl, Menu *, pMenu )
340*b1cdbd2cSJim Jagielski {
341*b1cdbd2cSJim Jagielski sal_uInt8 nLevelNo = 0;
342*b1cdbd2cSJim Jagielski switch(pMenu->GetCurItemId())
343*b1cdbd2cSJim Jagielski {
344*b1cdbd2cSJim Jagielski case MN_FORM1: nLevelNo = 1; break;
345*b1cdbd2cSJim Jagielski case MN_FORM2: nLevelNo = 2; break;
346*b1cdbd2cSJim Jagielski case MN_FORM3: nLevelNo = 3; break;
347*b1cdbd2cSJim Jagielski case MN_FORM4: nLevelNo = 4; break;
348*b1cdbd2cSJim Jagielski case MN_FORM5: nLevelNo = 5; break;
349*b1cdbd2cSJim Jagielski case MN_FORM6: nLevelNo = 6; break;
350*b1cdbd2cSJim Jagielski case MN_FORM7: nLevelNo = 7; break;
351*b1cdbd2cSJim Jagielski case MN_FORM8: nLevelNo = 8; break;
352*b1cdbd2cSJim Jagielski case MN_FORM9: nLevelNo = 9; break;
353*b1cdbd2cSJim Jagielski
354*b1cdbd2cSJim Jagielski case MN_SAVE:
355*b1cdbd2cSJim Jagielski {
356*b1cdbd2cSJim Jagielski SwNumNamesDlg *pDlg = new SwNumNamesDlg(this);
357*b1cdbd2cSJim Jagielski const String *aStrArr[SwChapterNumRules::nMaxRules];
358*b1cdbd2cSJim Jagielski for(sal_uInt16 i = 0; i < SwChapterNumRules::nMaxRules; ++i)
359*b1cdbd2cSJim Jagielski {
360*b1cdbd2cSJim Jagielski const SwNumRulesWithName *pRules = pChapterNumRules->GetRules(i);
361*b1cdbd2cSJim Jagielski if(pRules)
362*b1cdbd2cSJim Jagielski aStrArr[i] = &pRules->GetName();
363*b1cdbd2cSJim Jagielski else
364*b1cdbd2cSJim Jagielski aStrArr[i] = 0;
365*b1cdbd2cSJim Jagielski }
366*b1cdbd2cSJim Jagielski pDlg->SetUserNames(aStrArr);
367*b1cdbd2cSJim Jagielski if(RET_OK == pDlg->Execute())
368*b1cdbd2cSJim Jagielski {
369*b1cdbd2cSJim Jagielski const String aName(pDlg->GetName());
370*b1cdbd2cSJim Jagielski pChapterNumRules->ApplyNumRules( SwNumRulesWithName(
371*b1cdbd2cSJim Jagielski *pNumRule, aName ), pDlg->GetCurEntryPos() );
372*b1cdbd2cSJim Jagielski pMenu->SetItemText(
373*b1cdbd2cSJim Jagielski pDlg->GetCurEntryPos() + MN_FORMBASE, aName);
374*b1cdbd2cSJim Jagielski }
375*b1cdbd2cSJim Jagielski delete pDlg;
376*b1cdbd2cSJim Jagielski return 0;
377*b1cdbd2cSJim Jagielski
378*b1cdbd2cSJim Jagielski }
379*b1cdbd2cSJim Jagielski
380*b1cdbd2cSJim Jagielski }
381*b1cdbd2cSJim Jagielski if( nLevelNo-- )
382*b1cdbd2cSJim Jagielski {
383*b1cdbd2cSJim Jagielski const SwNumRulesWithName *pRules = pChapterNumRules->GetRules( nLevelNo );
384*b1cdbd2cSJim Jagielski if( pRules )
385*b1cdbd2cSJim Jagielski {
386*b1cdbd2cSJim Jagielski pRules->MakeNumRule( rWrtSh, *pNumRule );
387*b1cdbd2cSJim Jagielski pNumRule->SetRuleType( OUTLINE_RULE );
388*b1cdbd2cSJim Jagielski }
389*b1cdbd2cSJim Jagielski else
390*b1cdbd2cSJim Jagielski *pNumRule = *rWrtSh.GetOutlineNumRule();
391*b1cdbd2cSJim Jagielski }
392*b1cdbd2cSJim Jagielski
393*b1cdbd2cSJim Jagielski sal_uInt16 nPageId = GetCurPageId();
394*b1cdbd2cSJim Jagielski SfxTabPage* pPage = GetTabPage( nPageId );
395*b1cdbd2cSJim Jagielski pPage->Reset(*GetOutputItemSet());
396*b1cdbd2cSJim Jagielski
397*b1cdbd2cSJim Jagielski return 0;
398*b1cdbd2cSJim Jagielski }
399*b1cdbd2cSJim Jagielski /* -----------------07.07.98 14:19-------------------
400*b1cdbd2cSJim Jagielski *
401*b1cdbd2cSJim Jagielski * --------------------------------------------------*/
GetLevel(const String & rFmtName) const402*b1cdbd2cSJim Jagielski sal_uInt16 SwOutlineTabDialog::GetLevel(const String &rFmtName) const
403*b1cdbd2cSJim Jagielski {
404*b1cdbd2cSJim Jagielski for(sal_uInt16 i = 0; i < MAXLEVEL; ++i)
405*b1cdbd2cSJim Jagielski {
406*b1cdbd2cSJim Jagielski if(aCollNames[i] == rFmtName)
407*b1cdbd2cSJim Jagielski return i;
408*b1cdbd2cSJim Jagielski }
409*b1cdbd2cSJim Jagielski return MAXLEVEL;//NO_NUMBERING; //#outline level,zhaojianwei
410*b1cdbd2cSJim Jagielski
411*b1cdbd2cSJim Jagielski }
412*b1cdbd2cSJim Jagielski /* -----------------07.07.98 16:30-------------------
413*b1cdbd2cSJim Jagielski *
414*b1cdbd2cSJim Jagielski * --------------------------------------------------*/
Ok()415*b1cdbd2cSJim Jagielski short SwOutlineTabDialog::Ok()
416*b1cdbd2cSJim Jagielski {
417*b1cdbd2cSJim Jagielski SfxTabDialog::Ok();
418*b1cdbd2cSJim Jagielski // bei allen erzeugten Vorlagen die Ebenen setzen, muss
419*b1cdbd2cSJim Jagielski // geschehen, um evtl. aufgehobene Zuordnungen
420*b1cdbd2cSJim Jagielski // auch wieder zu loeschen
421*b1cdbd2cSJim Jagielski
422*b1cdbd2cSJim Jagielski // --> OD 2006-12-11 #130443#
423*b1cdbd2cSJim Jagielski // encapsulate changes into a action to avoid effects on the current cursor
424*b1cdbd2cSJim Jagielski // position during the changes.
425*b1cdbd2cSJim Jagielski rWrtSh.StartAction();
426*b1cdbd2cSJim Jagielski // <--
427*b1cdbd2cSJim Jagielski
428*b1cdbd2cSJim Jagielski const SwNumRule * pOutlineRule = rWrtSh.GetOutlineNumRule();
429*b1cdbd2cSJim Jagielski
430*b1cdbd2cSJim Jagielski sal_uInt16 i, nCount = rWrtSh.GetTxtFmtCollCount();
431*b1cdbd2cSJim Jagielski for( i = 0; i < nCount; ++i )
432*b1cdbd2cSJim Jagielski {
433*b1cdbd2cSJim Jagielski SwTxtFmtColl &rTxtColl = rWrtSh.GetTxtFmtColl(i);
434*b1cdbd2cSJim Jagielski if( !rTxtColl.IsDefault() )
435*b1cdbd2cSJim Jagielski {
436*b1cdbd2cSJim Jagielski //rTxtColl.SetOutlineLevel( (sal_uInt8)GetLevel(rTxtColl.GetName()));//#outline level,removed by zhaojianwei
437*b1cdbd2cSJim Jagielski
438*b1cdbd2cSJim Jagielski const SfxPoolItem & rItem =
439*b1cdbd2cSJim Jagielski rTxtColl.GetFmtAttr(RES_PARATR_NUMRULE, sal_False);
440*b1cdbd2cSJim Jagielski
441*b1cdbd2cSJim Jagielski //if ((sal_uInt8)GetLevel(rTxtColl.GetName()) == NO_NUMBERING) //#outline level,removed by zhaojianwei
442*b1cdbd2cSJim Jagielski //{
443*b1cdbd2cSJim Jagielski // if (static_cast<const SwNumRuleItem &>(rItem).GetValue() ==
444*b1cdbd2cSJim Jagielski // pOutlineRule->GetName())
445*b1cdbd2cSJim Jagielski // {
446*b1cdbd2cSJim Jagielski // rTxtColl.ResetFmtAttr(RES_PARATR_NUMRULE);
447*b1cdbd2cSJim Jagielski // }
448*b1cdbd2cSJim Jagielski //}
449*b1cdbd2cSJim Jagielski //else
450*b1cdbd2cSJim Jagielski //{
451*b1cdbd2cSJim Jagielski // if (static_cast<const SwNumRuleItem &>(rItem).GetValue() !=
452*b1cdbd2cSJim Jagielski // pOutlineRule->GetName())
453*b1cdbd2cSJim Jagielski // {
454*b1cdbd2cSJim Jagielski // SwNumRuleItem aItem(pOutlineRule->GetName());
455*b1cdbd2cSJim Jagielski // rTxtColl.SetFmtAttr(aItem);
456*b1cdbd2cSJim Jagielski // }
457*b1cdbd2cSJim Jagielski //}
458*b1cdbd2cSJim Jagielski if ((sal_uInt8)GetLevel(rTxtColl.GetName()) == MAXLEVEL) //add by zhaojianwei
459*b1cdbd2cSJim Jagielski {
460*b1cdbd2cSJim Jagielski if(rTxtColl.IsAssignedToListLevelOfOutlineStyle())
461*b1cdbd2cSJim Jagielski {
462*b1cdbd2cSJim Jagielski rTxtColl.DeleteAssignmentToListLevelOfOutlineStyle();
463*b1cdbd2cSJim Jagielski }
464*b1cdbd2cSJim Jagielski if (static_cast<const SwNumRuleItem &>(rItem).GetValue() ==
465*b1cdbd2cSJim Jagielski pOutlineRule->GetName())
466*b1cdbd2cSJim Jagielski {
467*b1cdbd2cSJim Jagielski rTxtColl.ResetFmtAttr(RES_PARATR_NUMRULE);
468*b1cdbd2cSJim Jagielski }
469*b1cdbd2cSJim Jagielski }
470*b1cdbd2cSJim Jagielski else
471*b1cdbd2cSJim Jagielski {
472*b1cdbd2cSJim Jagielski rTxtColl.AssignToListLevelOfOutlineStyle(GetLevel(rTxtColl.GetName()));
473*b1cdbd2cSJim Jagielski
474*b1cdbd2cSJim Jagielski if (static_cast<const SwNumRuleItem &>(rItem).GetValue() !=
475*b1cdbd2cSJim Jagielski pOutlineRule->GetName())
476*b1cdbd2cSJim Jagielski {
477*b1cdbd2cSJim Jagielski SwNumRuleItem aItem(pOutlineRule->GetName());
478*b1cdbd2cSJim Jagielski rTxtColl.SetFmtAttr(aItem);
479*b1cdbd2cSJim Jagielski }
480*b1cdbd2cSJim Jagielski } //<-end,zhaojianwei
481*b1cdbd2cSJim Jagielski }
482*b1cdbd2cSJim Jagielski }
483*b1cdbd2cSJim Jagielski
484*b1cdbd2cSJim Jagielski for(i = 0; i < MAXLEVEL; ++i )
485*b1cdbd2cSJim Jagielski {
486*b1cdbd2cSJim Jagielski String sHeadline;
487*b1cdbd2cSJim Jagielski ::SwStyleNameMapper::FillUIName( static_cast< sal_uInt16 >(RES_POOLCOLL_HEADLINE1 + i),
488*b1cdbd2cSJim Jagielski sHeadline );
489*b1cdbd2cSJim Jagielski SwTxtFmtColl* pColl = rWrtSh.FindTxtFmtCollByName( sHeadline );
490*b1cdbd2cSJim Jagielski if( !pColl )
491*b1cdbd2cSJim Jagielski {
492*b1cdbd2cSJim Jagielski //if( !aCollNames[i].Len() ) //#outline level,removed by zhaojianwei
493*b1cdbd2cSJim Jagielski //{
494*b1cdbd2cSJim Jagielski // SwTxtFmtColl* pTxtColl = rWrtSh.GetTxtCollFromPool(
495*b1cdbd2cSJim Jagielski // static_cast< sal_uInt16 >(RES_POOLCOLL_HEADLINE1 + i) );
496*b1cdbd2cSJim Jagielski // pTxtColl->SetOutlineLevel( NO_NUMBERING );
497*b1cdbd2cSJim Jagielski // pTxtColl->ResetFmtAttr(RES_PARATR_NUMRULE);
498*b1cdbd2cSJim Jagielski //}
499*b1cdbd2cSJim Jagielski //else if(aCollNames[i] != sHeadline)
500*b1cdbd2cSJim Jagielski //{
501*b1cdbd2cSJim Jagielski // SwTxtFmtColl* pTxtColl = rWrtSh.GetParaStyle(
502*b1cdbd2cSJim Jagielski // aCollNames[i], SwWrtShell::GETSTYLE_CREATESOME);
503*b1cdbd2cSJim Jagielski // if(pTxtColl)
504*b1cdbd2cSJim Jagielski // {
505*b1cdbd2cSJim Jagielski // pTxtColl->SetOutlineLevel( static_cast< sal_uInt8 >(i) );
506*b1cdbd2cSJim Jagielski
507*b1cdbd2cSJim Jagielski // SwNumRuleItem aItem(pOutlineRule->GetName());
508*b1cdbd2cSJim Jagielski // pTxtColl->SetFmtAttr(aItem);
509*b1cdbd2cSJim Jagielski // }
510*b1cdbd2cSJim Jagielski //}
511*b1cdbd2cSJim Jagielski if(aCollNames[i] != sHeadline)//->added by zhaojianwei
512*b1cdbd2cSJim Jagielski {
513*b1cdbd2cSJim Jagielski SwTxtFmtColl* pTxtColl = rWrtSh.GetTxtCollFromPool(
514*b1cdbd2cSJim Jagielski static_cast< sal_uInt16 >(RES_POOLCOLL_HEADLINE1 + i) );
515*b1cdbd2cSJim Jagielski pTxtColl->DeleteAssignmentToListLevelOfOutlineStyle();
516*b1cdbd2cSJim Jagielski pTxtColl->ResetFmtAttr(RES_PARATR_NUMRULE);
517*b1cdbd2cSJim Jagielski
518*b1cdbd2cSJim Jagielski if( aCollNames[i].Len() )
519*b1cdbd2cSJim Jagielski {
520*b1cdbd2cSJim Jagielski pTxtColl = rWrtSh.GetParaStyle(
521*b1cdbd2cSJim Jagielski aCollNames[i], SwWrtShell::GETSTYLE_CREATESOME);
522*b1cdbd2cSJim Jagielski if(pTxtColl)
523*b1cdbd2cSJim Jagielski {
524*b1cdbd2cSJim Jagielski pTxtColl->AssignToListLevelOfOutlineStyle(i);
525*b1cdbd2cSJim Jagielski SwNumRuleItem aItem(pOutlineRule->GetName());
526*b1cdbd2cSJim Jagielski pTxtColl->SetFmtAttr(aItem);
527*b1cdbd2cSJim Jagielski }
528*b1cdbd2cSJim Jagielski }
529*b1cdbd2cSJim Jagielski }//<--end,zhaojianwei
530*b1cdbd2cSJim Jagielski }
531*b1cdbd2cSJim Jagielski }
532*b1cdbd2cSJim Jagielski
533*b1cdbd2cSJim Jagielski rWrtSh.SetOutlineNumRule( *pNumRule);
534*b1cdbd2cSJim Jagielski
535*b1cdbd2cSJim Jagielski // --> OD 2006-12-11 #130443#
536*b1cdbd2cSJim Jagielski rWrtSh.EndAction();
537*b1cdbd2cSJim Jagielski // <--
538*b1cdbd2cSJim Jagielski
539*b1cdbd2cSJim Jagielski return RET_OK;
540*b1cdbd2cSJim Jagielski }
541*b1cdbd2cSJim Jagielski
542*b1cdbd2cSJim Jagielski /* -----------------07.07.98 14:19-------------------
543*b1cdbd2cSJim Jagielski *
544*b1cdbd2cSJim Jagielski * --------------------------------------------------*/
SwOutlineSettingsTabPage(Window * pParent,const SfxItemSet & rSet)545*b1cdbd2cSJim Jagielski SwOutlineSettingsTabPage::SwOutlineSettingsTabPage(Window* pParent, const SfxItemSet& rSet) :
546*b1cdbd2cSJim Jagielski SfxTabPage(pParent, SW_RES(TP_OUTLINE_NUM), rSet),
547*b1cdbd2cSJim Jagielski aLevelFL( this, SW_RES(FL_LEVEL )),
548*b1cdbd2cSJim Jagielski aLevelLB( this, SW_RES(LB_LEVEL )),
549*b1cdbd2cSJim Jagielski aNumberFL(this, SW_RES(FL_NUMBER)),
550*b1cdbd2cSJim Jagielski aCollLbl(this, SW_RES(FT_COLL)),
551*b1cdbd2cSJim Jagielski aCollBox(this, SW_RES(LB_COLL)),
552*b1cdbd2cSJim Jagielski aNumberLbl(this, SW_RES(FT_NUMBER)),
553*b1cdbd2cSJim Jagielski aNumberBox(this, SW_RES(LB_NUMBER), INSERT_NUM_TYPE_NO_NUMBERING|INSERT_NUM_EXTENDED_TYPES),
554*b1cdbd2cSJim Jagielski aCharFmtFT(this, SW_RES(FT_CHARFMT)),
555*b1cdbd2cSJim Jagielski aCharFmtLB(this, SW_RES(LB_CHARFMT)),
556*b1cdbd2cSJim Jagielski aAllLevelFT( this, SW_RES(FT_ALL_LEVEL)),
557*b1cdbd2cSJim Jagielski aAllLevelNF( this, SW_RES(NF_ALL_LEVEL)),
558*b1cdbd2cSJim Jagielski aDelim(this, SW_RES(FT_DELIM)),
559*b1cdbd2cSJim Jagielski aPrefixFT(this, SW_RES(FT_PREFIX)),
560*b1cdbd2cSJim Jagielski aPrefixED(this, SW_RES(ED_PREFIX)),
561*b1cdbd2cSJim Jagielski aSuffixFT(this, SW_RES(FT_SUFFIX)),
562*b1cdbd2cSJim Jagielski aSuffixED(this, SW_RES(ED_SUFFIX)),
563*b1cdbd2cSJim Jagielski aStartLbl(this, SW_RES(FT_START)),
564*b1cdbd2cSJim Jagielski aStartEdit(this, SW_RES(ED_START)),
565*b1cdbd2cSJim Jagielski aPreviewWIN( this, SW_RES(WIN_PREVIEW )),
566*b1cdbd2cSJim Jagielski
567*b1cdbd2cSJim Jagielski aNoFmtName(SW_RES(ST_NO_COLL)),
568*b1cdbd2cSJim Jagielski pSh(0),
569*b1cdbd2cSJim Jagielski pCollNames(0),
570*b1cdbd2cSJim Jagielski nActLevel(1)
571*b1cdbd2cSJim Jagielski {
572*b1cdbd2cSJim Jagielski FreeResource();
573*b1cdbd2cSJim Jagielski SetExchangeSupport();
574*b1cdbd2cSJim Jagielski
575*b1cdbd2cSJim Jagielski aCollBox.InsertEntry(aNoFmtName);
576*b1cdbd2cSJim Jagielski aLevelLB.SetSelectHdl(LINK(this, SwOutlineSettingsTabPage, LevelHdl));
577*b1cdbd2cSJim Jagielski aAllLevelNF.SetModifyHdl(LINK(this, SwOutlineSettingsTabPage, ToggleComplete));
578*b1cdbd2cSJim Jagielski aCollBox.SetSelectHdl(LINK(this, SwOutlineSettingsTabPage, CollSelect));
579*b1cdbd2cSJim Jagielski aCollBox.SetGetFocusHdl(LINK(this, SwOutlineSettingsTabPage, CollSelectGetFocus));
580*b1cdbd2cSJim Jagielski aNumberBox.SetSelectHdl(LINK(this, SwOutlineSettingsTabPage, NumberSelect));
581*b1cdbd2cSJim Jagielski aPrefixED.SetModifyHdl(LINK(this, SwOutlineSettingsTabPage, DelimModify));
582*b1cdbd2cSJim Jagielski aSuffixED.SetModifyHdl(LINK(this, SwOutlineSettingsTabPage, DelimModify));
583*b1cdbd2cSJim Jagielski aStartEdit.SetModifyHdl(LINK(this, SwOutlineSettingsTabPage, StartModified));
584*b1cdbd2cSJim Jagielski aCharFmtLB.SetSelectHdl(LINK(this, SwOutlineSettingsTabPage, CharFmtHdl));
585*b1cdbd2cSJim Jagielski
586*b1cdbd2cSJim Jagielski }
587*b1cdbd2cSJim Jagielski /* -----------------07.07.98 14:19-------------------
588*b1cdbd2cSJim Jagielski *
589*b1cdbd2cSJim Jagielski * --------------------------------------------------*/
Update()590*b1cdbd2cSJim Jagielski void SwOutlineSettingsTabPage::Update()
591*b1cdbd2cSJim Jagielski {
592*b1cdbd2cSJim Jagielski // falls eine Vorlage fuer diese Ebene bereits selektiert wurde,
593*b1cdbd2cSJim Jagielski // diese in der ListBox auswaehlean
594*b1cdbd2cSJim Jagielski aCollBox.Enable(USHRT_MAX != nActLevel);
595*b1cdbd2cSJim Jagielski if(USHRT_MAX == nActLevel)
596*b1cdbd2cSJim Jagielski {
597*b1cdbd2cSJim Jagielski sal_Bool bSamePrefix = sal_True;
598*b1cdbd2cSJim Jagielski sal_Bool bSameSuffix = sal_True;
599*b1cdbd2cSJim Jagielski sal_Bool bSameType = sal_True;
600*b1cdbd2cSJim Jagielski sal_Bool bSameComplete = sal_True;
601*b1cdbd2cSJim Jagielski sal_Bool bSameStart = sal_True;
602*b1cdbd2cSJim Jagielski sal_Bool bSameCharFmt = sal_True;
603*b1cdbd2cSJim Jagielski
604*b1cdbd2cSJim Jagielski const SwNumFmt* aNumFmtArr[MAXLEVEL];
605*b1cdbd2cSJim Jagielski const SwCharFmt* pFirstFmt = 0;
606*b1cdbd2cSJim Jagielski
607*b1cdbd2cSJim Jagielski for(sal_uInt16 i = 0; i < MAXLEVEL; i++)
608*b1cdbd2cSJim Jagielski {
609*b1cdbd2cSJim Jagielski
610*b1cdbd2cSJim Jagielski aNumFmtArr[ i ] = &pNumRule->Get(i);
611*b1cdbd2cSJim Jagielski if(i == 0)
612*b1cdbd2cSJim Jagielski pFirstFmt = aNumFmtArr[i]->GetCharFmt();
613*b1cdbd2cSJim Jagielski else
614*b1cdbd2cSJim Jagielski {
615*b1cdbd2cSJim Jagielski bSameType &= aNumFmtArr[i]->GetNumberingType() == aNumFmtArr[0]->GetNumberingType();
616*b1cdbd2cSJim Jagielski bSameStart &= aNumFmtArr[i]->GetStart() == aNumFmtArr[0]->GetStart();
617*b1cdbd2cSJim Jagielski bSamePrefix &= aNumFmtArr[i]->GetPrefix() == aNumFmtArr[0]->GetPrefix();
618*b1cdbd2cSJim Jagielski bSameSuffix &= aNumFmtArr[i]->GetSuffix() == aNumFmtArr[0]->GetSuffix();
619*b1cdbd2cSJim Jagielski bSameComplete &= aNumFmtArr[i]->GetIncludeUpperLevels() == aNumFmtArr[0]->GetIncludeUpperLevels();
620*b1cdbd2cSJim Jagielski const SwCharFmt* pFmt = aNumFmtArr[i]->GetCharFmt();
621*b1cdbd2cSJim Jagielski bSameCharFmt &= (!pFirstFmt && !pFmt)
622*b1cdbd2cSJim Jagielski || (pFirstFmt && pFmt && pFmt->GetName() == pFirstFmt->GetName());
623*b1cdbd2cSJim Jagielski }
624*b1cdbd2cSJim Jagielski }
625*b1cdbd2cSJim Jagielski CheckForStartValue_Impl(aNumFmtArr[0]->GetNumberingType());
626*b1cdbd2cSJim Jagielski if(bSameType)
627*b1cdbd2cSJim Jagielski aNumberBox.SelectNumberingType( aNumFmtArr[0]->GetNumberingType() );
628*b1cdbd2cSJim Jagielski else
629*b1cdbd2cSJim Jagielski aNumberBox.SetNoSelection();
630*b1cdbd2cSJim Jagielski if(bSameStart)
631*b1cdbd2cSJim Jagielski aStartEdit.SetValue(aNumFmtArr[0]->GetStart());
632*b1cdbd2cSJim Jagielski else
633*b1cdbd2cSJim Jagielski aStartEdit.SetText(aEmptyStr);
634*b1cdbd2cSJim Jagielski if(bSamePrefix)
635*b1cdbd2cSJim Jagielski aPrefixED.SetText(aNumFmtArr[0]->GetPrefix());
636*b1cdbd2cSJim Jagielski else
637*b1cdbd2cSJim Jagielski aPrefixED.SetText(aEmptyStr);
638*b1cdbd2cSJim Jagielski if(bSameSuffix)
639*b1cdbd2cSJim Jagielski aSuffixED.SetText(aNumFmtArr[0]->GetSuffix());
640*b1cdbd2cSJim Jagielski else
641*b1cdbd2cSJim Jagielski aSuffixED.SetText(aEmptyStr);
642*b1cdbd2cSJim Jagielski
643*b1cdbd2cSJim Jagielski if(bSameCharFmt)
644*b1cdbd2cSJim Jagielski {
645*b1cdbd2cSJim Jagielski if(pFirstFmt)
646*b1cdbd2cSJim Jagielski aCharFmtLB.SelectEntry(pFirstFmt->GetName());
647*b1cdbd2cSJim Jagielski else
648*b1cdbd2cSJim Jagielski aCharFmtLB.SelectEntry( ViewShell::GetShellRes()->aStrNone );
649*b1cdbd2cSJim Jagielski }
650*b1cdbd2cSJim Jagielski else
651*b1cdbd2cSJim Jagielski aCharFmtLB.SetNoSelection();
652*b1cdbd2cSJim Jagielski
653*b1cdbd2cSJim Jagielski aAllLevelFT.Enable(sal_True);
654*b1cdbd2cSJim Jagielski aAllLevelNF.Enable(sal_True);
655*b1cdbd2cSJim Jagielski aAllLevelNF.SetMax(MAXLEVEL);
656*b1cdbd2cSJim Jagielski if(bSameComplete)
657*b1cdbd2cSJim Jagielski {
658*b1cdbd2cSJim Jagielski aAllLevelNF.SetValue(aNumFmtArr[0]->GetIncludeUpperLevels());
659*b1cdbd2cSJim Jagielski }
660*b1cdbd2cSJim Jagielski else
661*b1cdbd2cSJim Jagielski {
662*b1cdbd2cSJim Jagielski aAllLevelNF.SetText(aEmptyStr);
663*b1cdbd2cSJim Jagielski }
664*b1cdbd2cSJim Jagielski }
665*b1cdbd2cSJim Jagielski else
666*b1cdbd2cSJim Jagielski {
667*b1cdbd2cSJim Jagielski sal_uInt16 nTmpLevel = lcl_BitToLevel(nActLevel);
668*b1cdbd2cSJim Jagielski String aColl(pCollNames[nTmpLevel]);
669*b1cdbd2cSJim Jagielski if(aColl.Len())
670*b1cdbd2cSJim Jagielski aCollBox.SelectEntry(aColl);
671*b1cdbd2cSJim Jagielski else
672*b1cdbd2cSJim Jagielski aCollBox.SelectEntry(aNoFmtName);
673*b1cdbd2cSJim Jagielski const SwNumFmt &rFmt = pNumRule->Get(nTmpLevel);
674*b1cdbd2cSJim Jagielski
675*b1cdbd2cSJim Jagielski aNumberBox.SelectNumberingType( rFmt.GetNumberingType() );
676*b1cdbd2cSJim Jagielski aPrefixED.SetText(rFmt.GetPrefix());
677*b1cdbd2cSJim Jagielski aSuffixED.SetText(rFmt.GetSuffix());
678*b1cdbd2cSJim Jagielski const SwCharFmt* pFmt = rFmt.GetCharFmt();
679*b1cdbd2cSJim Jagielski if(pFmt)
680*b1cdbd2cSJim Jagielski aCharFmtLB.SelectEntry(pFmt->GetName());
681*b1cdbd2cSJim Jagielski else
682*b1cdbd2cSJim Jagielski aCharFmtLB.SelectEntry( ViewShell::GetShellRes()->aStrNone );
683*b1cdbd2cSJim Jagielski
684*b1cdbd2cSJim Jagielski if(nTmpLevel)
685*b1cdbd2cSJim Jagielski {
686*b1cdbd2cSJim Jagielski aAllLevelFT.Enable(sal_True);
687*b1cdbd2cSJim Jagielski aAllLevelNF.Enable(sal_True);
688*b1cdbd2cSJim Jagielski aAllLevelNF.SetMax(nTmpLevel + 1);
689*b1cdbd2cSJim Jagielski aAllLevelNF.SetValue(rFmt.GetIncludeUpperLevels());
690*b1cdbd2cSJim Jagielski }
691*b1cdbd2cSJim Jagielski else
692*b1cdbd2cSJim Jagielski {
693*b1cdbd2cSJim Jagielski aAllLevelNF.SetText(aEmptyStr);
694*b1cdbd2cSJim Jagielski aAllLevelNF.Enable(sal_False);
695*b1cdbd2cSJim Jagielski aAllLevelFT.Enable(sal_False);
696*b1cdbd2cSJim Jagielski }
697*b1cdbd2cSJim Jagielski CheckForStartValue_Impl(rFmt.GetNumberingType());
698*b1cdbd2cSJim Jagielski aStartEdit.SetValue( rFmt.GetStart() );
699*b1cdbd2cSJim Jagielski }
700*b1cdbd2cSJim Jagielski SetModified();
701*b1cdbd2cSJim Jagielski }
702*b1cdbd2cSJim Jagielski
703*b1cdbd2cSJim Jagielski /* -----------------07.07.98 14:19-------------------
704*b1cdbd2cSJim Jagielski *
705*b1cdbd2cSJim Jagielski * --------------------------------------------------*/
IMPL_LINK(SwOutlineSettingsTabPage,LevelHdl,ListBox *,pBox)706*b1cdbd2cSJim Jagielski IMPL_LINK( SwOutlineSettingsTabPage, LevelHdl, ListBox *, pBox )
707*b1cdbd2cSJim Jagielski {
708*b1cdbd2cSJim Jagielski nActLevel = 0;
709*b1cdbd2cSJim Jagielski if(pBox->IsEntryPosSelected( MAXLEVEL ))
710*b1cdbd2cSJim Jagielski {
711*b1cdbd2cSJim Jagielski nActLevel = 0xFFFF;
712*b1cdbd2cSJim Jagielski }
713*b1cdbd2cSJim Jagielski else
714*b1cdbd2cSJim Jagielski {
715*b1cdbd2cSJim Jagielski sal_uInt16 nMask = 1;
716*b1cdbd2cSJim Jagielski for( sal_uInt16 i = 0; i < MAXLEVEL; i++ )
717*b1cdbd2cSJim Jagielski {
718*b1cdbd2cSJim Jagielski if(pBox->IsEntryPosSelected( i ))
719*b1cdbd2cSJim Jagielski nActLevel |= nMask;
720*b1cdbd2cSJim Jagielski nMask <<= 1;
721*b1cdbd2cSJim Jagielski }
722*b1cdbd2cSJim Jagielski }
723*b1cdbd2cSJim Jagielski Update();
724*b1cdbd2cSJim Jagielski return 0;
725*b1cdbd2cSJim Jagielski }
726*b1cdbd2cSJim Jagielski /* -----------------07.07.98 14:19-------------------
727*b1cdbd2cSJim Jagielski *
728*b1cdbd2cSJim Jagielski * --------------------------------------------------*/
IMPL_LINK(SwOutlineSettingsTabPage,ToggleComplete,NumericField *,pFld)729*b1cdbd2cSJim Jagielski IMPL_LINK( SwOutlineSettingsTabPage, ToggleComplete, NumericField *, pFld )
730*b1cdbd2cSJim Jagielski {
731*b1cdbd2cSJim Jagielski sal_uInt16 nMask = 1;
732*b1cdbd2cSJim Jagielski for(sal_uInt16 i = 0; i < MAXLEVEL; i++)
733*b1cdbd2cSJim Jagielski {
734*b1cdbd2cSJim Jagielski if(nActLevel & nMask)
735*b1cdbd2cSJim Jagielski {
736*b1cdbd2cSJim Jagielski SwNumFmt aNumFmt(pNumRule->Get(i));
737*b1cdbd2cSJim Jagielski aNumFmt.SetIncludeUpperLevels( Min( (sal_uInt8)pFld->GetValue(),
738*b1cdbd2cSJim Jagielski (sal_uInt8)(i + 1)) );
739*b1cdbd2cSJim Jagielski pNumRule->Set(i, aNumFmt);
740*b1cdbd2cSJim Jagielski }
741*b1cdbd2cSJim Jagielski nMask <<= 1;
742*b1cdbd2cSJim Jagielski }
743*b1cdbd2cSJim Jagielski SetModified();
744*b1cdbd2cSJim Jagielski return 0;
745*b1cdbd2cSJim Jagielski }
746*b1cdbd2cSJim Jagielski /* -----------------07.07.98 14:19-------------------
747*b1cdbd2cSJim Jagielski *
748*b1cdbd2cSJim Jagielski * --------------------------------------------------*/
IMPL_LINK(SwOutlineSettingsTabPage,CollSelect,ListBox *,pBox)749*b1cdbd2cSJim Jagielski IMPL_LINK( SwOutlineSettingsTabPage, CollSelect, ListBox *, pBox )
750*b1cdbd2cSJim Jagielski {
751*b1cdbd2cSJim Jagielski sal_uInt8 i;
752*b1cdbd2cSJim Jagielski
753*b1cdbd2cSJim Jagielski const String aCollName(pBox->GetSelectEntry());
754*b1cdbd2cSJim Jagielski //0xFFFF darf hier nicht sein (disable)
755*b1cdbd2cSJim Jagielski sal_uInt16 nTmpLevel = lcl_BitToLevel(nActLevel);
756*b1cdbd2cSJim Jagielski String sOldName( pCollNames[nTmpLevel] );
757*b1cdbd2cSJim Jagielski
758*b1cdbd2cSJim Jagielski for( i = 0; i < MAXLEVEL; ++i)
759*b1cdbd2cSJim Jagielski pCollNames[i] = aSaveCollNames[i];
760*b1cdbd2cSJim Jagielski
761*b1cdbd2cSJim Jagielski if(aCollName == aNoFmtName)
762*b1cdbd2cSJim Jagielski pCollNames[nTmpLevel] = aEmptyStr;
763*b1cdbd2cSJim Jagielski else
764*b1cdbd2cSJim Jagielski {
765*b1cdbd2cSJim Jagielski pCollNames[nTmpLevel] = aCollName;
766*b1cdbd2cSJim Jagielski // wird die Vorlage bereits verwendet ?
767*b1cdbd2cSJim Jagielski for( i = 0; i < MAXLEVEL; ++i)
768*b1cdbd2cSJim Jagielski if(i != nTmpLevel && pCollNames[i] == aCollName )
769*b1cdbd2cSJim Jagielski pCollNames[i] = aEmptyStr;
770*b1cdbd2cSJim Jagielski }
771*b1cdbd2cSJim Jagielski
772*b1cdbd2cSJim Jagielski // search the oldname and put it into the current entries
773*b1cdbd2cSJim Jagielski if( sOldName.Len() )
774*b1cdbd2cSJim Jagielski for( i = 0; i < MAXLEVEL; ++i)
775*b1cdbd2cSJim Jagielski if( aSaveCollNames[ i ] == sOldName && i != nTmpLevel &&
776*b1cdbd2cSJim Jagielski !pCollNames[ i ].Len() )
777*b1cdbd2cSJim Jagielski {
778*b1cdbd2cSJim Jagielski sal_uInt8 n;
779*b1cdbd2cSJim Jagielski for( n = 0; n < MAXLEVEL; ++n )
780*b1cdbd2cSJim Jagielski if( pCollNames[ n ] == sOldName )
781*b1cdbd2cSJim Jagielski break;
782*b1cdbd2cSJim Jagielski
783*b1cdbd2cSJim Jagielski if( MAXLEVEL == n )
784*b1cdbd2cSJim Jagielski // it was a outline leveld name and the current entries is zero.
785*b1cdbd2cSJim Jagielski pCollNames[ i ] = sOldName;
786*b1cdbd2cSJim Jagielski }
787*b1cdbd2cSJim Jagielski
788*b1cdbd2cSJim Jagielski SetModified();
789*b1cdbd2cSJim Jagielski return 0;
790*b1cdbd2cSJim Jagielski }
791*b1cdbd2cSJim Jagielski
IMPL_LINK(SwOutlineSettingsTabPage,CollSelectGetFocus,ListBox *,EMPTYARG)792*b1cdbd2cSJim Jagielski IMPL_LINK( SwOutlineSettingsTabPage, CollSelectGetFocus, ListBox *, EMPTYARG )
793*b1cdbd2cSJim Jagielski {
794*b1cdbd2cSJim Jagielski for( sal_uInt8 i = 0; i < MAXLEVEL; ++i)
795*b1cdbd2cSJim Jagielski aSaveCollNames[i] = pCollNames[i];
796*b1cdbd2cSJim Jagielski return 0;
797*b1cdbd2cSJim Jagielski }
798*b1cdbd2cSJim Jagielski
799*b1cdbd2cSJim Jagielski /* -----------------07.07.98 14:19-------------------
800*b1cdbd2cSJim Jagielski *
801*b1cdbd2cSJim Jagielski * --------------------------------------------------*/
IMPL_LINK(SwOutlineSettingsTabPage,NumberSelect,SwNumberingTypeListBox *,pBox)802*b1cdbd2cSJim Jagielski IMPL_LINK( SwOutlineSettingsTabPage, NumberSelect, SwNumberingTypeListBox *, pBox )
803*b1cdbd2cSJim Jagielski {
804*b1cdbd2cSJim Jagielski sal_uInt16 nMask = 1;
805*b1cdbd2cSJim Jagielski sal_Int16 nNumberType = pBox->GetSelectedNumberingType();//(sal_Int16)(sal_uLong)pBox->GetEntryData(pBox->GetSelectEntryPos());
806*b1cdbd2cSJim Jagielski for(sal_uInt16 i = 0; i < MAXLEVEL; i++)
807*b1cdbd2cSJim Jagielski {
808*b1cdbd2cSJim Jagielski if(nActLevel & nMask)
809*b1cdbd2cSJim Jagielski {
810*b1cdbd2cSJim Jagielski SwNumFmt aNumFmt(pNumRule->Get(i));
811*b1cdbd2cSJim Jagielski aNumFmt.SetNumberingType(nNumberType);
812*b1cdbd2cSJim Jagielski pNumRule->Set(i, aNumFmt);
813*b1cdbd2cSJim Jagielski CheckForStartValue_Impl(nNumberType);
814*b1cdbd2cSJim Jagielski }
815*b1cdbd2cSJim Jagielski nMask <<= 1;
816*b1cdbd2cSJim Jagielski }
817*b1cdbd2cSJim Jagielski SetModified();
818*b1cdbd2cSJim Jagielski return 0;
819*b1cdbd2cSJim Jagielski }
820*b1cdbd2cSJim Jagielski /* -----------------07.07.98 14:19-------------------
821*b1cdbd2cSJim Jagielski *
822*b1cdbd2cSJim Jagielski * --------------------------------------------------*/
IMPL_LINK(SwOutlineSettingsTabPage,DelimModify,Edit *,EMPTYARG)823*b1cdbd2cSJim Jagielski IMPL_LINK( SwOutlineSettingsTabPage, DelimModify, Edit *, EMPTYARG )
824*b1cdbd2cSJim Jagielski {
825*b1cdbd2cSJim Jagielski sal_uInt16 nMask = 1;
826*b1cdbd2cSJim Jagielski for(sal_uInt16 i = 0; i < MAXLEVEL; i++)
827*b1cdbd2cSJim Jagielski {
828*b1cdbd2cSJim Jagielski if(nActLevel & nMask)
829*b1cdbd2cSJim Jagielski {
830*b1cdbd2cSJim Jagielski SwNumFmt aNumFmt(pNumRule->Get(i));
831*b1cdbd2cSJim Jagielski aNumFmt.SetPrefix( aPrefixED.GetText() );
832*b1cdbd2cSJim Jagielski aNumFmt.SetSuffix( aSuffixED.GetText() );
833*b1cdbd2cSJim Jagielski pNumRule->Set(i, aNumFmt);
834*b1cdbd2cSJim Jagielski }
835*b1cdbd2cSJim Jagielski nMask <<= 1;
836*b1cdbd2cSJim Jagielski }
837*b1cdbd2cSJim Jagielski SetModified();
838*b1cdbd2cSJim Jagielski return 0;
839*b1cdbd2cSJim Jagielski }
840*b1cdbd2cSJim Jagielski /* -----------------07.07.98 14:19-------------------
841*b1cdbd2cSJim Jagielski *
842*b1cdbd2cSJim Jagielski * --------------------------------------------------*/
IMPL_LINK(SwOutlineSettingsTabPage,StartModified,NumericField *,pFld)843*b1cdbd2cSJim Jagielski IMPL_LINK( SwOutlineSettingsTabPage, StartModified, NumericField *, pFld )
844*b1cdbd2cSJim Jagielski {
845*b1cdbd2cSJim Jagielski sal_uInt16 nMask = 1;
846*b1cdbd2cSJim Jagielski for(sal_uInt16 i = 0; i < MAXLEVEL; i++)
847*b1cdbd2cSJim Jagielski {
848*b1cdbd2cSJim Jagielski if(nActLevel & nMask)
849*b1cdbd2cSJim Jagielski {
850*b1cdbd2cSJim Jagielski SwNumFmt aNumFmt(pNumRule->Get(i));
851*b1cdbd2cSJim Jagielski aNumFmt.SetStart( (sal_uInt16)pFld->GetValue() );
852*b1cdbd2cSJim Jagielski pNumRule->Set(i, aNumFmt);
853*b1cdbd2cSJim Jagielski }
854*b1cdbd2cSJim Jagielski nMask <<= 1;
855*b1cdbd2cSJim Jagielski }
856*b1cdbd2cSJim Jagielski SetModified();
857*b1cdbd2cSJim Jagielski return 0;
858*b1cdbd2cSJim Jagielski }
859*b1cdbd2cSJim Jagielski /* -----------------21.09.98 12:21-------------------
860*b1cdbd2cSJim Jagielski *
861*b1cdbd2cSJim Jagielski * --------------------------------------------------*/
IMPL_LINK(SwOutlineSettingsTabPage,CharFmtHdl,ListBox *,EMPTYARG)862*b1cdbd2cSJim Jagielski IMPL_LINK( SwOutlineSettingsTabPage, CharFmtHdl, ListBox *, EMPTYARG )
863*b1cdbd2cSJim Jagielski {
864*b1cdbd2cSJim Jagielski // bAutomaticCharStyles = sal_False;
865*b1cdbd2cSJim Jagielski String sEntry = aCharFmtLB.GetSelectEntry();
866*b1cdbd2cSJim Jagielski sal_uInt16 nMask = 1;
867*b1cdbd2cSJim Jagielski sal_Bool bFormatNone = sEntry == ViewShell::GetShellRes()->aStrNone;
868*b1cdbd2cSJim Jagielski SwCharFmt* pFmt = 0;
869*b1cdbd2cSJim Jagielski if(!bFormatNone)
870*b1cdbd2cSJim Jagielski {
871*b1cdbd2cSJim Jagielski sal_uInt16 nChCount = pSh->GetCharFmtCount();
872*b1cdbd2cSJim Jagielski for(sal_uInt16 i = 0; i < nChCount; i++)
873*b1cdbd2cSJim Jagielski {
874*b1cdbd2cSJim Jagielski SwCharFmt& rChFmt = pSh->GetCharFmt(i);
875*b1cdbd2cSJim Jagielski if(rChFmt.GetName() == sEntry)
876*b1cdbd2cSJim Jagielski {
877*b1cdbd2cSJim Jagielski pFmt = &rChFmt;
878*b1cdbd2cSJim Jagielski break;
879*b1cdbd2cSJim Jagielski }
880*b1cdbd2cSJim Jagielski }
881*b1cdbd2cSJim Jagielski if(!pFmt)
882*b1cdbd2cSJim Jagielski {
883*b1cdbd2cSJim Jagielski SfxStyleSheetBasePool* pPool = pSh->GetView().GetDocShell()->GetStyleSheetPool();
884*b1cdbd2cSJim Jagielski SfxStyleSheetBase* pBase;
885*b1cdbd2cSJim Jagielski pBase = pPool->Find(sEntry, SFX_STYLE_FAMILY_CHAR);
886*b1cdbd2cSJim Jagielski if(!pBase)
887*b1cdbd2cSJim Jagielski pBase = &pPool->Make(sEntry, SFX_STYLE_FAMILY_PAGE);
888*b1cdbd2cSJim Jagielski pFmt = ((SwDocStyleSheet*)pBase)->GetCharFmt();
889*b1cdbd2cSJim Jagielski
890*b1cdbd2cSJim Jagielski }
891*b1cdbd2cSJim Jagielski }
892*b1cdbd2cSJim Jagielski
893*b1cdbd2cSJim Jagielski for(sal_uInt16 i = 0; i < MAXLEVEL; i++)
894*b1cdbd2cSJim Jagielski {
895*b1cdbd2cSJim Jagielski if(nActLevel & nMask)
896*b1cdbd2cSJim Jagielski {
897*b1cdbd2cSJim Jagielski SwNumFmt aNumFmt(pNumRule->Get(i));
898*b1cdbd2cSJim Jagielski if(bFormatNone)
899*b1cdbd2cSJim Jagielski aNumFmt.SetCharFmt(0);
900*b1cdbd2cSJim Jagielski else
901*b1cdbd2cSJim Jagielski aNumFmt.SetCharFmt(pFmt);
902*b1cdbd2cSJim Jagielski pNumRule->Set(i, aNumFmt);
903*b1cdbd2cSJim Jagielski }
904*b1cdbd2cSJim Jagielski nMask <<= 1;
905*b1cdbd2cSJim Jagielski }
906*b1cdbd2cSJim Jagielski return RET_OK;
907*b1cdbd2cSJim Jagielski }
908*b1cdbd2cSJim Jagielski /* -----------------07.07.98 14:19-------------------
909*b1cdbd2cSJim Jagielski *
910*b1cdbd2cSJim Jagielski * --------------------------------------------------*/
~SwOutlineSettingsTabPage()911*b1cdbd2cSJim Jagielski SwOutlineSettingsTabPage::~SwOutlineSettingsTabPage()
912*b1cdbd2cSJim Jagielski {
913*b1cdbd2cSJim Jagielski }
914*b1cdbd2cSJim Jagielski /* -----------------07.07.98 16:27-------------------
915*b1cdbd2cSJim Jagielski *
916*b1cdbd2cSJim Jagielski * --------------------------------------------------*/
SetWrtShell(SwWrtShell * pShell)917*b1cdbd2cSJim Jagielski void SwOutlineSettingsTabPage::SetWrtShell(SwWrtShell* pShell)
918*b1cdbd2cSJim Jagielski {
919*b1cdbd2cSJim Jagielski pSh = pShell;
920*b1cdbd2cSJim Jagielski // Erfragen der NumRules dieses Dokumentes
921*b1cdbd2cSJim Jagielski pNumRule = ((SwOutlineTabDialog*)GetTabDialog())->GetNumRule();
922*b1cdbd2cSJim Jagielski pCollNames = ((SwOutlineTabDialog*)GetTabDialog())->GetCollNames();
923*b1cdbd2cSJim Jagielski
924*b1cdbd2cSJim Jagielski //pNumRule = new SwNumRule( *rSh.GetOutlineNumRule() );
925*b1cdbd2cSJim Jagielski
926*b1cdbd2cSJim Jagielski aPreviewWIN.SetNumRule(pNumRule);
927*b1cdbd2cSJim Jagielski aPreviewWIN.SetOutlineNames(pCollNames);
928*b1cdbd2cSJim Jagielski // Startwert setzen - nActLevel muss hier 1 sein
929*b1cdbd2cSJim Jagielski sal_uInt16 nTmpLevel = lcl_BitToLevel(nActLevel);
930*b1cdbd2cSJim Jagielski const SwNumFmt& rNumFmt = pNumRule->Get( nTmpLevel );
931*b1cdbd2cSJim Jagielski aStartEdit.SetValue( rNumFmt.GetStart() );
932*b1cdbd2cSJim Jagielski
933*b1cdbd2cSJim Jagielski // Poolformate fuer Ueberschriften anlegen
934*b1cdbd2cSJim Jagielski String sStr;
935*b1cdbd2cSJim Jagielski sal_uInt16 i;
936*b1cdbd2cSJim Jagielski for( i = 0; i < MAXLEVEL; ++i )
937*b1cdbd2cSJim Jagielski {
938*b1cdbd2cSJim Jagielski aCollBox.InsertEntry( SwStyleNameMapper::GetUIName(
939*b1cdbd2cSJim Jagielski static_cast< sal_uInt16 >(RES_POOLCOLL_HEADLINE1 + i), aEmptyStr ));
940*b1cdbd2cSJim Jagielski aLevelLB.InsertEntry( String::CreateFromInt32(i + 1) );
941*b1cdbd2cSJim Jagielski }
942*b1cdbd2cSJim Jagielski sStr.AssignAscii( RTL_CONSTASCII_STRINGPARAM( "1 - " ));
943*b1cdbd2cSJim Jagielski sStr += String::CreateFromInt32(MAXLEVEL);
944*b1cdbd2cSJim Jagielski aLevelLB.InsertEntry( sStr );
945*b1cdbd2cSJim Jagielski
946*b1cdbd2cSJim Jagielski // Erfragen der Gliederungsebenen der Textvorlagen
947*b1cdbd2cSJim Jagielski const sal_uInt16 nCount = pSh->GetTxtFmtCollCount();
948*b1cdbd2cSJim Jagielski for( i = 0; i < nCount; ++i )
949*b1cdbd2cSJim Jagielski {
950*b1cdbd2cSJim Jagielski SwTxtFmtColl &rTxtColl = pSh->GetTxtFmtColl(i);
951*b1cdbd2cSJim Jagielski if(!rTxtColl.IsDefault())
952*b1cdbd2cSJim Jagielski {
953*b1cdbd2cSJim Jagielski sStr = rTxtColl.GetName();
954*b1cdbd2cSJim Jagielski if(LISTBOX_ENTRY_NOTFOUND == aCollBox.GetEntryPos( sStr ))
955*b1cdbd2cSJim Jagielski aCollBox.InsertEntry( sStr );
956*b1cdbd2cSJim Jagielski }
957*b1cdbd2cSJim Jagielski }
958*b1cdbd2cSJim Jagielski
959*b1cdbd2cSJim Jagielski aNumberBox.SelectNumberingType(rNumFmt.GetNumberingType());
960*b1cdbd2cSJim Jagielski sal_uInt16 nOutlinePos = pSh->GetOutlinePos(MAXLEVEL);
961*b1cdbd2cSJim Jagielski sal_uInt16 nTmp = 0;
962*b1cdbd2cSJim Jagielski if(nOutlinePos != USHRT_MAX)
963*b1cdbd2cSJim Jagielski {
964*b1cdbd2cSJim Jagielski nTmp = static_cast<sal_uInt16>(pSh->getIDocumentOutlineNodesAccess()->getOutlineLevel(nOutlinePos));
965*b1cdbd2cSJim Jagielski }
966*b1cdbd2cSJim Jagielski aLevelLB.SelectEntryPos(nTmp-1);//nTmp);//#outline level,zhaojianwei
967*b1cdbd2cSJim Jagielski
968*b1cdbd2cSJim Jagielski // Zeichenvorlagen sammeln
969*b1cdbd2cSJim Jagielski aCharFmtLB.Clear();
970*b1cdbd2cSJim Jagielski aCharFmtLB.InsertEntry( ViewShell::GetShellRes()->aStrNone );
971*b1cdbd2cSJim Jagielski
972*b1cdbd2cSJim Jagielski // Zeichenvorlagen
973*b1cdbd2cSJim Jagielski ::FillCharStyleListBox(aCharFmtLB,
974*b1cdbd2cSJim Jagielski pSh->GetView().GetDocShell());
975*b1cdbd2cSJim Jagielski Update();
976*b1cdbd2cSJim Jagielski }
977*b1cdbd2cSJim Jagielski /* -----------------07.07.98 14:19-------------------
978*b1cdbd2cSJim Jagielski *
979*b1cdbd2cSJim Jagielski * --------------------------------------------------*/
ActivatePage(const SfxItemSet &)980*b1cdbd2cSJim Jagielski void SwOutlineSettingsTabPage::ActivatePage(const SfxItemSet& )
981*b1cdbd2cSJim Jagielski {
982*b1cdbd2cSJim Jagielski nActLevel = SwOutlineTabDialog::GetActNumLevel();
983*b1cdbd2cSJim Jagielski if(nActLevel != USHRT_MAX)
984*b1cdbd2cSJim Jagielski aLevelLB.SelectEntryPos(lcl_BitToLevel(nActLevel));
985*b1cdbd2cSJim Jagielski else
986*b1cdbd2cSJim Jagielski aLevelLB.SelectEntryPos(MAXLEVEL);
987*b1cdbd2cSJim Jagielski LevelHdl(&aLevelLB);
988*b1cdbd2cSJim Jagielski }
989*b1cdbd2cSJim Jagielski /* -----------------07.07.98 14:19-------------------
990*b1cdbd2cSJim Jagielski *
991*b1cdbd2cSJim Jagielski * --------------------------------------------------*/
DeactivatePage(SfxItemSet *)992*b1cdbd2cSJim Jagielski int SwOutlineSettingsTabPage::DeactivatePage(SfxItemSet*)
993*b1cdbd2cSJim Jagielski {
994*b1cdbd2cSJim Jagielski SwOutlineTabDialog::SetActNumLevel(nActLevel);
995*b1cdbd2cSJim Jagielski return LEAVE_PAGE;
996*b1cdbd2cSJim Jagielski }
997*b1cdbd2cSJim Jagielski /* -----------------07.07.98 14:19-------------------
998*b1cdbd2cSJim Jagielski *
999*b1cdbd2cSJim Jagielski * --------------------------------------------------*/
FillItemSet(SfxItemSet &)1000*b1cdbd2cSJim Jagielski sal_Bool SwOutlineSettingsTabPage::FillItemSet( SfxItemSet& )
1001*b1cdbd2cSJim Jagielski {
1002*b1cdbd2cSJim Jagielski return sal_True;
1003*b1cdbd2cSJim Jagielski }
1004*b1cdbd2cSJim Jagielski /* -----------------07.07.98 14:19-------------------
1005*b1cdbd2cSJim Jagielski *
1006*b1cdbd2cSJim Jagielski * --------------------------------------------------*/
Reset(const SfxItemSet & rSet)1007*b1cdbd2cSJim Jagielski void SwOutlineSettingsTabPage::Reset( const SfxItemSet& rSet )
1008*b1cdbd2cSJim Jagielski {
1009*b1cdbd2cSJim Jagielski ActivatePage(rSet);
1010*b1cdbd2cSJim Jagielski }
1011*b1cdbd2cSJim Jagielski /* -----------------07.07.98 14:19-------------------
1012*b1cdbd2cSJim Jagielski *
1013*b1cdbd2cSJim Jagielski * --------------------------------------------------*/
Create(Window * pParent,const SfxItemSet & rAttrSet)1014*b1cdbd2cSJim Jagielski SfxTabPage* SwOutlineSettingsTabPage::Create( Window* pParent,
1015*b1cdbd2cSJim Jagielski const SfxItemSet& rAttrSet)
1016*b1cdbd2cSJim Jagielski {
1017*b1cdbd2cSJim Jagielski return new SwOutlineSettingsTabPage(pParent, rAttrSet);
1018*b1cdbd2cSJim Jagielski }
1019*b1cdbd2cSJim Jagielski /* -----------------07.11.2002 15:13-----------------
1020*b1cdbd2cSJim Jagielski *
1021*b1cdbd2cSJim Jagielski * --------------------------------------------------*/
CheckForStartValue_Impl(sal_uInt16 nNumberingType)1022*b1cdbd2cSJim Jagielski void SwOutlineSettingsTabPage::CheckForStartValue_Impl(sal_uInt16 nNumberingType)
1023*b1cdbd2cSJim Jagielski {
1024*b1cdbd2cSJim Jagielski sal_Bool bIsNull = aStartEdit.GetValue() == 0;
1025*b1cdbd2cSJim Jagielski sal_Bool bNoZeroAllowed = nNumberingType < SVX_NUM_ARABIC ||
1026*b1cdbd2cSJim Jagielski SVX_NUM_CHARS_UPPER_LETTER_N == nNumberingType ||
1027*b1cdbd2cSJim Jagielski SVX_NUM_CHARS_LOWER_LETTER_N == nNumberingType;
1028*b1cdbd2cSJim Jagielski aStartEdit.SetMin(bNoZeroAllowed ? 1 : 0);
1029*b1cdbd2cSJim Jagielski if(bIsNull && bNoZeroAllowed)
1030*b1cdbd2cSJim Jagielski aStartEdit.GetModifyHdl().Call(&aStartEdit);
1031*b1cdbd2cSJim Jagielski }
1032*b1cdbd2cSJim Jagielski /*-----------------09.12.97 11:54-------------------
1033*b1cdbd2cSJim Jagielski
1034*b1cdbd2cSJim Jagielski --------------------------------------------------*/
lcl_DrawBullet(VirtualDevice * pVDev,const SwNumFmt & rFmt,sal_uInt16 nXStart,sal_uInt16 nYStart,const Size & rSize)1035*b1cdbd2cSJim Jagielski sal_uInt16 lcl_DrawBullet(VirtualDevice* pVDev,
1036*b1cdbd2cSJim Jagielski const SwNumFmt& rFmt, sal_uInt16 nXStart,
1037*b1cdbd2cSJim Jagielski sal_uInt16 nYStart, const Size& rSize)
1038*b1cdbd2cSJim Jagielski {
1039*b1cdbd2cSJim Jagielski Font aTmpFont(pVDev->GetFont());
1040*b1cdbd2cSJim Jagielski
1041*b1cdbd2cSJim Jagielski Font aFont(*rFmt.GetBulletFont());
1042*b1cdbd2cSJim Jagielski aFont.SetSize(rSize);
1043*b1cdbd2cSJim Jagielski aFont.SetTransparent(sal_True);
1044*b1cdbd2cSJim Jagielski pVDev->SetFont( aFont );
1045*b1cdbd2cSJim Jagielski String aText(rFmt.GetBulletChar());
1046*b1cdbd2cSJim Jagielski pVDev->DrawText( Point(nXStart, nYStart), aText );
1047*b1cdbd2cSJim Jagielski sal_uInt16 nRet = (sal_uInt16)pVDev->GetTextWidth(aText);
1048*b1cdbd2cSJim Jagielski
1049*b1cdbd2cSJim Jagielski pVDev->SetFont(aTmpFont);
1050*b1cdbd2cSJim Jagielski return nRet;
1051*b1cdbd2cSJim Jagielski }
1052*b1cdbd2cSJim Jagielski /*-----------------09.12.97 11:49-------------------
1053*b1cdbd2cSJim Jagielski
1054*b1cdbd2cSJim Jagielski --------------------------------------------------*/
lcl_DrawGraphic(VirtualDevice * pVDev,const SwNumFmt & rFmt,sal_uInt16 nXStart,sal_uInt16 nYStart,sal_uInt16 nDivision)1055*b1cdbd2cSJim Jagielski sal_uInt16 lcl_DrawGraphic(VirtualDevice* pVDev, const SwNumFmt &rFmt, sal_uInt16 nXStart,
1056*b1cdbd2cSJim Jagielski sal_uInt16 nYStart, sal_uInt16 nDivision)
1057*b1cdbd2cSJim Jagielski {
1058*b1cdbd2cSJim Jagielski const SvxBrushItem* pBrushItem = rFmt.GetBrush();
1059*b1cdbd2cSJim Jagielski sal_uInt16 nRet = 0;
1060*b1cdbd2cSJim Jagielski if(pBrushItem)
1061*b1cdbd2cSJim Jagielski {
1062*b1cdbd2cSJim Jagielski const Graphic* pGrf = pBrushItem->GetGraphic();
1063*b1cdbd2cSJim Jagielski if(pGrf)
1064*b1cdbd2cSJim Jagielski {
1065*b1cdbd2cSJim Jagielski Size aGSize( rFmt.GetGraphicSize());
1066*b1cdbd2cSJim Jagielski aGSize.Width() /= nDivision;
1067*b1cdbd2cSJim Jagielski nRet = (sal_uInt16)aGSize.Width();
1068*b1cdbd2cSJim Jagielski aGSize.Height() /= nDivision;
1069*b1cdbd2cSJim Jagielski pGrf->Draw( pVDev, Point(nXStart,nYStart),
1070*b1cdbd2cSJim Jagielski pVDev->PixelToLogic( aGSize ) );
1071*b1cdbd2cSJim Jagielski }
1072*b1cdbd2cSJim Jagielski }
1073*b1cdbd2cSJim Jagielski return nRet;
1074*b1cdbd2cSJim Jagielski
1075*b1cdbd2cSJim Jagielski }
1076*b1cdbd2cSJim Jagielski /*-----------------02.12.97 10:34-------------------
1077*b1cdbd2cSJim Jagielski Vorschau der Numerierung painten
1078*b1cdbd2cSJim Jagielski --------------------------------------------------*/
Paint(const Rectangle &)1079*b1cdbd2cSJim Jagielski void NumberingPreview::Paint( const Rectangle& /*rRect*/ )
1080*b1cdbd2cSJim Jagielski {
1081*b1cdbd2cSJim Jagielski Size aSize(PixelToLogic(GetOutputSizePixel()));
1082*b1cdbd2cSJim Jagielski Rectangle aRect(Point(0,0), aSize);
1083*b1cdbd2cSJim Jagielski
1084*b1cdbd2cSJim Jagielski VirtualDevice* pVDev = new VirtualDevice(*this);
1085*b1cdbd2cSJim Jagielski pVDev->SetMapMode(GetMapMode());
1086*b1cdbd2cSJim Jagielski pVDev->SetOutputSize( aSize );
1087*b1cdbd2cSJim Jagielski
1088*b1cdbd2cSJim Jagielski // #101524# OJ
1089*b1cdbd2cSJim Jagielski pVDev->SetFillColor( GetSettings().GetStyleSettings().GetWindowColor() );
1090*b1cdbd2cSJim Jagielski pVDev->SetLineColor( GetSettings().GetStyleSettings().GetButtonTextColor() );
1091*b1cdbd2cSJim Jagielski pVDev->DrawRect(aRect);
1092*b1cdbd2cSJim Jagielski
1093*b1cdbd2cSJim Jagielski if(pActNum)
1094*b1cdbd2cSJim Jagielski {
1095*b1cdbd2cSJim Jagielski sal_uInt16 nWidthRelation;
1096*b1cdbd2cSJim Jagielski if(nPageWidth)
1097*b1cdbd2cSJim Jagielski {
1098*b1cdbd2cSJim Jagielski nWidthRelation = sal_uInt16 (nPageWidth / aSize.Width());
1099*b1cdbd2cSJim Jagielski if(bPosition)
1100*b1cdbd2cSJim Jagielski nWidthRelation = nWidthRelation * 2 / 3;
1101*b1cdbd2cSJim Jagielski else
1102*b1cdbd2cSJim Jagielski nWidthRelation = nWidthRelation / 4;
1103*b1cdbd2cSJim Jagielski }
1104*b1cdbd2cSJim Jagielski else
1105*b1cdbd2cSJim Jagielski nWidthRelation = 30; // Kapiteldialog
1106*b1cdbd2cSJim Jagielski
1107*b1cdbd2cSJim Jagielski //Hoehe pro Ebene
1108*b1cdbd2cSJim Jagielski sal_uInt16 nXStep = sal_uInt16(aSize.Width() / (3 * MAXLEVEL));
1109*b1cdbd2cSJim Jagielski if(MAXLEVEL < 10)
1110*b1cdbd2cSJim Jagielski nXStep /= 2;
1111*b1cdbd2cSJim Jagielski sal_uInt16 nYStart = 4;
1112*b1cdbd2cSJim Jagielski sal_uInt16 nYStep = sal_uInt16((aSize.Height() - 6)/ MAXLEVEL);
1113*b1cdbd2cSJim Jagielski aStdFont = OutputDevice::GetDefaultFont(
1114*b1cdbd2cSJim Jagielski DEFAULTFONT_UI_SANS, (LanguageType)GetAppLanguage(),
1115*b1cdbd2cSJim Jagielski DEFAULTFONT_FLAGS_ONLYONE, this );
1116*b1cdbd2cSJim Jagielski // #101524# OJ
1117*b1cdbd2cSJim Jagielski aStdFont.SetColor( SwViewOption::GetFontColor() );
1118*b1cdbd2cSJim Jagielski
1119*b1cdbd2cSJim Jagielski //
1120*b1cdbd2cSJim Jagielski sal_uInt16 nFontHeight = nYStep * 6 / 10;
1121*b1cdbd2cSJim Jagielski if(bPosition)
1122*b1cdbd2cSJim Jagielski nFontHeight = nYStep * 15 / 10;
1123*b1cdbd2cSJim Jagielski aStdFont.SetSize(Size( 0, nFontHeight ));
1124*b1cdbd2cSJim Jagielski
1125*b1cdbd2cSJim Jagielski sal_uInt16 nPreNum = pActNum->Get(0).GetStart();
1126*b1cdbd2cSJim Jagielski
1127*b1cdbd2cSJim Jagielski if(bPosition)
1128*b1cdbd2cSJim Jagielski {
1129*b1cdbd2cSJim Jagielski sal_uInt16 nLineHeight = nFontHeight * 8 / 7;
1130*b1cdbd2cSJim Jagielski sal_uInt8 nStart = 0;
1131*b1cdbd2cSJim Jagielski while( !(nActLevel & (1<<nStart)) )
1132*b1cdbd2cSJim Jagielski {
1133*b1cdbd2cSJim Jagielski nStart++;
1134*b1cdbd2cSJim Jagielski }
1135*b1cdbd2cSJim Jagielski if(nStart) // damit moeglichs Vorgaenger und Nachfolger gezeigt werden
1136*b1cdbd2cSJim Jagielski nStart--;
1137*b1cdbd2cSJim Jagielski
1138*b1cdbd2cSJim Jagielski SwNumberTree::tNumberVector aNumVector;
1139*b1cdbd2cSJim Jagielski sal_uInt8 nEnd = Min( (sal_uInt8)(nStart + 3), MAXLEVEL );
1140*b1cdbd2cSJim Jagielski for( sal_uInt8 nLevel = nStart; nLevel < nEnd; ++nLevel )
1141*b1cdbd2cSJim Jagielski {
1142*b1cdbd2cSJim Jagielski const SwNumFmt &rFmt = pActNum->Get(nLevel);
1143*b1cdbd2cSJim Jagielski aNumVector.push_back(rFmt.GetStart());
1144*b1cdbd2cSJim Jagielski
1145*b1cdbd2cSJim Jagielski // --> OD 2008-02-01 #newlistlevelattrs#
1146*b1cdbd2cSJim Jagielski sal_uInt16 nXStart( 0 );
1147*b1cdbd2cSJim Jagielski short nTextOffset( 0 );
1148*b1cdbd2cSJim Jagielski sal_uInt16 nNumberXPos( 0 );
1149*b1cdbd2cSJim Jagielski if ( rFmt.GetPositionAndSpaceMode() == SvxNumberFormat::LABEL_WIDTH_AND_POSITION )
1150*b1cdbd2cSJim Jagielski {
1151*b1cdbd2cSJim Jagielski nXStart = rFmt.GetAbsLSpace() / nWidthRelation;
1152*b1cdbd2cSJim Jagielski nTextOffset = rFmt.GetCharTextDistance() / nWidthRelation;
1153*b1cdbd2cSJim Jagielski nNumberXPos = nXStart;
1154*b1cdbd2cSJim Jagielski sal_uInt16 nFirstLineOffset = (-rFmt.GetFirstLineOffset()) / nWidthRelation;
1155*b1cdbd2cSJim Jagielski
1156*b1cdbd2cSJim Jagielski if(nFirstLineOffset <= nNumberXPos)
1157*b1cdbd2cSJim Jagielski nNumberXPos = nNumberXPos - nFirstLineOffset;
1158*b1cdbd2cSJim Jagielski else
1159*b1cdbd2cSJim Jagielski nNumberXPos = 0;
1160*b1cdbd2cSJim Jagielski }
1161*b1cdbd2cSJim Jagielski else if ( rFmt.GetPositionAndSpaceMode() == SvxNumberFormat::LABEL_ALIGNMENT )
1162*b1cdbd2cSJim Jagielski {
1163*b1cdbd2cSJim Jagielski const long nTmpNumberXPos( ( rFmt.GetIndentAt() +
1164*b1cdbd2cSJim Jagielski rFmt.GetFirstLineIndent() ) /
1165*b1cdbd2cSJim Jagielski nWidthRelation );
1166*b1cdbd2cSJim Jagielski if ( nTmpNumberXPos < 0 )
1167*b1cdbd2cSJim Jagielski {
1168*b1cdbd2cSJim Jagielski nNumberXPos = 0;
1169*b1cdbd2cSJim Jagielski }
1170*b1cdbd2cSJim Jagielski else
1171*b1cdbd2cSJim Jagielski {
1172*b1cdbd2cSJim Jagielski nNumberXPos = static_cast<sal_uInt16>(nTmpNumberXPos);
1173*b1cdbd2cSJim Jagielski }
1174*b1cdbd2cSJim Jagielski }
1175*b1cdbd2cSJim Jagielski // <--
1176*b1cdbd2cSJim Jagielski
1177*b1cdbd2cSJim Jagielski sal_uInt16 nBulletWidth = 0;
1178*b1cdbd2cSJim Jagielski if( SVX_NUM_BITMAP == rFmt.GetNumberingType() )
1179*b1cdbd2cSJim Jagielski {
1180*b1cdbd2cSJim Jagielski nBulletWidth = lcl_DrawGraphic(pVDev, rFmt,
1181*b1cdbd2cSJim Jagielski nNumberXPos,
1182*b1cdbd2cSJim Jagielski nYStart, nWidthRelation);
1183*b1cdbd2cSJim Jagielski }
1184*b1cdbd2cSJim Jagielski else if( SVX_NUM_CHAR_SPECIAL == rFmt.GetNumberingType() )
1185*b1cdbd2cSJim Jagielski {
1186*b1cdbd2cSJim Jagielski nBulletWidth = lcl_DrawBullet(pVDev, rFmt, nNumberXPos, nYStart, aStdFont.GetSize());
1187*b1cdbd2cSJim Jagielski }
1188*b1cdbd2cSJim Jagielski else
1189*b1cdbd2cSJim Jagielski {
1190*b1cdbd2cSJim Jagielski pVDev->SetFont(aStdFont);
1191*b1cdbd2cSJim Jagielski if(pActNum->IsContinusNum())
1192*b1cdbd2cSJim Jagielski aNumVector[nLevel] = nPreNum;
1193*b1cdbd2cSJim Jagielski // --> OD 2005-11-17 #128041#
1194*b1cdbd2cSJim Jagielski String aText(pActNum->MakeNumString( aNumVector ));
1195*b1cdbd2cSJim Jagielski // <--
1196*b1cdbd2cSJim Jagielski pVDev->DrawText( Point(nNumberXPos, nYStart), aText );
1197*b1cdbd2cSJim Jagielski nBulletWidth = (sal_uInt16)pVDev->GetTextWidth(aText);
1198*b1cdbd2cSJim Jagielski nPreNum++;
1199*b1cdbd2cSJim Jagielski }
1200*b1cdbd2cSJim Jagielski // --> OD 2008-02-01 #newlistlevelattrs#
1201*b1cdbd2cSJim Jagielski if ( rFmt.GetPositionAndSpaceMode() == SvxNumberFormat::LABEL_ALIGNMENT &&
1202*b1cdbd2cSJim Jagielski rFmt.GetLabelFollowedBy() == SvxNumberFormat::SPACE )
1203*b1cdbd2cSJim Jagielski {
1204*b1cdbd2cSJim Jagielski pVDev->SetFont(aStdFont);
1205*b1cdbd2cSJim Jagielski String aText(' ');
1206*b1cdbd2cSJim Jagielski pVDev->DrawText( Point(nNumberXPos, nYStart), aText );
1207*b1cdbd2cSJim Jagielski nBulletWidth = nBulletWidth + (sal_uInt16)pVDev->GetTextWidth(aText);
1208*b1cdbd2cSJim Jagielski }
1209*b1cdbd2cSJim Jagielski // <--
1210*b1cdbd2cSJim Jagielski
1211*b1cdbd2cSJim Jagielski // --> OD 2008-02-01 #newlistlevelattrs#
1212*b1cdbd2cSJim Jagielski sal_uInt16 nTextXPos( 0 );
1213*b1cdbd2cSJim Jagielski if ( rFmt.GetPositionAndSpaceMode() == SvxNumberFormat::LABEL_WIDTH_AND_POSITION )
1214*b1cdbd2cSJim Jagielski {
1215*b1cdbd2cSJim Jagielski nTextXPos = nXStart;
1216*b1cdbd2cSJim Jagielski if(nTextOffset < 0)
1217*b1cdbd2cSJim Jagielski nTextXPos = nTextXPos + nTextOffset;
1218*b1cdbd2cSJim Jagielski if(nNumberXPos + nBulletWidth + nTextOffset > nTextXPos )
1219*b1cdbd2cSJim Jagielski nTextXPos = nNumberXPos + nBulletWidth + nTextOffset;
1220*b1cdbd2cSJim Jagielski }
1221*b1cdbd2cSJim Jagielski else if ( rFmt.GetPositionAndSpaceMode() == SvxNumberFormat::LABEL_ALIGNMENT )
1222*b1cdbd2cSJim Jagielski {
1223*b1cdbd2cSJim Jagielski switch ( rFmt.GetLabelFollowedBy() )
1224*b1cdbd2cSJim Jagielski {
1225*b1cdbd2cSJim Jagielski case SvxNumberFormat::LISTTAB:
1226*b1cdbd2cSJim Jagielski {
1227*b1cdbd2cSJim Jagielski nTextXPos = static_cast<sal_uInt16>(
1228*b1cdbd2cSJim Jagielski rFmt.GetListtabPos() / nWidthRelation );
1229*b1cdbd2cSJim Jagielski if ( nTextXPos < nNumberXPos + nBulletWidth )
1230*b1cdbd2cSJim Jagielski {
1231*b1cdbd2cSJim Jagielski nTextXPos = nNumberXPos + nBulletWidth;
1232*b1cdbd2cSJim Jagielski }
1233*b1cdbd2cSJim Jagielski }
1234*b1cdbd2cSJim Jagielski break;
1235*b1cdbd2cSJim Jagielski case SvxNumberFormat::SPACE:
1236*b1cdbd2cSJim Jagielski case SvxNumberFormat::NOTHING:
1237*b1cdbd2cSJim Jagielski {
1238*b1cdbd2cSJim Jagielski nTextXPos = nNumberXPos + nBulletWidth;
1239*b1cdbd2cSJim Jagielski }
1240*b1cdbd2cSJim Jagielski break;
1241*b1cdbd2cSJim Jagielski }
1242*b1cdbd2cSJim Jagielski
1243*b1cdbd2cSJim Jagielski nXStart = static_cast<sal_uInt16>( rFmt.GetIndentAt() / nWidthRelation );
1244*b1cdbd2cSJim Jagielski }
1245*b1cdbd2cSJim Jagielski // <--
1246*b1cdbd2cSJim Jagielski
1247*b1cdbd2cSJim Jagielski
1248*b1cdbd2cSJim Jagielski Rectangle aRect1(Point(nTextXPos, nYStart + nFontHeight / 2), Size(aSize.Width() / 2, 2));
1249*b1cdbd2cSJim Jagielski pVDev->SetFillColor( GetSettings().GetStyleSettings().GetWindowColor() ); // Color( COL_BLACK ) );
1250*b1cdbd2cSJim Jagielski pVDev->DrawRect( aRect1 );
1251*b1cdbd2cSJim Jagielski
1252*b1cdbd2cSJim Jagielski Rectangle aRect2(Point(nXStart, nYStart + nLineHeight + nFontHeight / 2 ), Size(aSize.Width() / 2, 2));
1253*b1cdbd2cSJim Jagielski pVDev->DrawRect( aRect2 );
1254*b1cdbd2cSJim Jagielski nYStart += 2 * nLineHeight;
1255*b1cdbd2cSJim Jagielski }
1256*b1cdbd2cSJim Jagielski }
1257*b1cdbd2cSJim Jagielski else
1258*b1cdbd2cSJim Jagielski {
1259*b1cdbd2cSJim Jagielski SwNumberTree::tNumberVector aNumVector;
1260*b1cdbd2cSJim Jagielski sal_uInt16 nLineHeight = nFontHeight * 3 / 2;
1261*b1cdbd2cSJim Jagielski for( sal_uInt8 nLevel = 0; nLevel < MAXLEVEL;
1262*b1cdbd2cSJim Jagielski ++nLevel, nYStart = nYStart + nYStep )
1263*b1cdbd2cSJim Jagielski {
1264*b1cdbd2cSJim Jagielski const SwNumFmt &rFmt = pActNum->Get(nLevel);
1265*b1cdbd2cSJim Jagielski aNumVector.push_back(rFmt.GetStart());
1266*b1cdbd2cSJim Jagielski // --> OD 2008-02-01 #newlistlevelattrs#
1267*b1cdbd2cSJim Jagielski sal_uInt16 nXStart( 0 );
1268*b1cdbd2cSJim Jagielski if ( rFmt.GetPositionAndSpaceMode() == SvxNumberFormat::LABEL_WIDTH_AND_POSITION )
1269*b1cdbd2cSJim Jagielski {
1270*b1cdbd2cSJim Jagielski nXStart = rFmt.GetAbsLSpace() / nWidthRelation;
1271*b1cdbd2cSJim Jagielski }
1272*b1cdbd2cSJim Jagielski else if ( rFmt.GetPositionAndSpaceMode() == SvxNumberFormat::LABEL_ALIGNMENT )
1273*b1cdbd2cSJim Jagielski {
1274*b1cdbd2cSJim Jagielski const long nTmpXStart( ( rFmt.GetIndentAt() +
1275*b1cdbd2cSJim Jagielski rFmt.GetFirstLineIndent() ) /
1276*b1cdbd2cSJim Jagielski nWidthRelation );
1277*b1cdbd2cSJim Jagielski if ( nTmpXStart < 0 )
1278*b1cdbd2cSJim Jagielski {
1279*b1cdbd2cSJim Jagielski nXStart = 0;
1280*b1cdbd2cSJim Jagielski }
1281*b1cdbd2cSJim Jagielski else
1282*b1cdbd2cSJim Jagielski {
1283*b1cdbd2cSJim Jagielski nXStart = static_cast<sal_uInt16>(nTmpXStart);
1284*b1cdbd2cSJim Jagielski }
1285*b1cdbd2cSJim Jagielski }
1286*b1cdbd2cSJim Jagielski nXStart /= 2;
1287*b1cdbd2cSJim Jagielski nXStart += 2;
1288*b1cdbd2cSJim Jagielski // <--
1289*b1cdbd2cSJim Jagielski sal_uInt16 nTextOffset = 2 * nXStep;
1290*b1cdbd2cSJim Jagielski if( SVX_NUM_BITMAP == rFmt.GetNumberingType() )
1291*b1cdbd2cSJim Jagielski {
1292*b1cdbd2cSJim Jagielski lcl_DrawGraphic(pVDev, rFmt, nXStart, nYStart, nWidthRelation);
1293*b1cdbd2cSJim Jagielski nTextOffset = nLineHeight + nXStep;
1294*b1cdbd2cSJim Jagielski }
1295*b1cdbd2cSJim Jagielski else if( SVX_NUM_CHAR_SPECIAL == rFmt.GetNumberingType() )
1296*b1cdbd2cSJim Jagielski {
1297*b1cdbd2cSJim Jagielski nTextOffset = lcl_DrawBullet(pVDev, rFmt, nXStart, nYStart, aStdFont.GetSize());
1298*b1cdbd2cSJim Jagielski nTextOffset = nTextOffset + nXStep;
1299*b1cdbd2cSJim Jagielski }
1300*b1cdbd2cSJim Jagielski else
1301*b1cdbd2cSJim Jagielski {
1302*b1cdbd2cSJim Jagielski pVDev->SetFont(aStdFont);
1303*b1cdbd2cSJim Jagielski if(pActNum->IsContinusNum())
1304*b1cdbd2cSJim Jagielski aNumVector[nLevel] = nPreNum;
1305*b1cdbd2cSJim Jagielski // --> OD 2005-11-17 #128041#
1306*b1cdbd2cSJim Jagielski String aText(pActNum->MakeNumString( aNumVector ));
1307*b1cdbd2cSJim Jagielski // <--
1308*b1cdbd2cSJim Jagielski pVDev->DrawText( Point(nXStart, nYStart), aText );
1309*b1cdbd2cSJim Jagielski nTextOffset = (sal_uInt16)pVDev->GetTextWidth(aText);
1310*b1cdbd2cSJim Jagielski nTextOffset = nTextOffset + nXStep;
1311*b1cdbd2cSJim Jagielski nPreNum++;
1312*b1cdbd2cSJim Jagielski }
1313*b1cdbd2cSJim Jagielski pVDev->SetFont(aStdFont);
1314*b1cdbd2cSJim Jagielski
1315*b1cdbd2cSJim Jagielski // Changed as per BugID 79541 Branding/Configuration
1316*b1cdbd2cSJim Jagielski uno::Any MyAny = ::utl::ConfigManager::GetConfigManager()->
1317*b1cdbd2cSJim Jagielski GetDirectConfigProperty( ::utl::ConfigManager::PRODUCTNAME );
1318*b1cdbd2cSJim Jagielski ::rtl::OUString aProductName;
1319*b1cdbd2cSJim Jagielski
1320*b1cdbd2cSJim Jagielski MyAny >>= aProductName;
1321*b1cdbd2cSJim Jagielski String sMsg(C2S("%PRODUCTNAME"));
1322*b1cdbd2cSJim Jagielski sMsg.SearchAndReplaceAscii( "%PRODUCTNAME" , aProductName );
1323*b1cdbd2cSJim Jagielski
1324*b1cdbd2cSJim Jagielski if(pOutlineNames)
1325*b1cdbd2cSJim Jagielski sMsg = pOutlineNames[nLevel];
1326*b1cdbd2cSJim Jagielski pVDev->DrawText( Point(nXStart + nTextOffset, nYStart), sMsg );
1327*b1cdbd2cSJim Jagielski }
1328*b1cdbd2cSJim Jagielski }
1329*b1cdbd2cSJim Jagielski }
1330*b1cdbd2cSJim Jagielski DrawOutDev( Point(0,0), aSize,
1331*b1cdbd2cSJim Jagielski Point(0,0), aSize,
1332*b1cdbd2cSJim Jagielski *pVDev );
1333*b1cdbd2cSJim Jagielski delete pVDev;
1334*b1cdbd2cSJim Jagielski
1335*b1cdbd2cSJim Jagielski }
1336*b1cdbd2cSJim Jagielski
1337*b1cdbd2cSJim Jagielski /*-----------------02.12.97 10:34-------------------
1338*b1cdbd2cSJim Jagielski
1339*b1cdbd2cSJim Jagielski --------------------------------------------------*/
~NumberingPreview()1340*b1cdbd2cSJim Jagielski NumberingPreview::~NumberingPreview()
1341*b1cdbd2cSJim Jagielski {
1342*b1cdbd2cSJim Jagielski }
1343*b1cdbd2cSJim Jagielski
1344*b1cdbd2cSJim Jagielski
1345