xref: /aoo4110/main/sw/source/ui/frmdlg/cption.cxx (revision b1cdbd2c)
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 
30*b1cdbd2cSJim Jagielski 
31*b1cdbd2cSJim Jagielski 
32*b1cdbd2cSJim Jagielski #ifndef _VIEW_HXX
33*b1cdbd2cSJim Jagielski #include <view.hxx>
34*b1cdbd2cSJim Jagielski #endif
35*b1cdbd2cSJim Jagielski #include <wrtsh.hxx>
36*b1cdbd2cSJim Jagielski #include <cption.hxx>
37*b1cdbd2cSJim Jagielski #include <fldmgr.hxx>
38*b1cdbd2cSJim Jagielski #include <expfld.hxx>
39*b1cdbd2cSJim Jagielski #include <numrule.hxx>
40*b1cdbd2cSJim Jagielski #include <poolfmt.hxx>
41*b1cdbd2cSJim Jagielski #include <docsh.hxx>
42*b1cdbd2cSJim Jagielski #include <frmfmt.hxx>
43*b1cdbd2cSJim Jagielski #include <calc.hxx>
44*b1cdbd2cSJim Jagielski #include <uitool.hxx>
45*b1cdbd2cSJim Jagielski #include <doc.hxx>
46*b1cdbd2cSJim Jagielski #include <modcfg.hxx>
47*b1cdbd2cSJim Jagielski #include <swmodule.hxx>
48*b1cdbd2cSJim Jagielski #include <com/sun/star/frame/XStorable.hpp>
49*b1cdbd2cSJim Jagielski #include <com/sun/star/text/GraphicCrop.hpp>
50*b1cdbd2cSJim Jagielski #include <com/sun/star/text/XTextGraphicObjectsSupplier.hpp>
51*b1cdbd2cSJim Jagielski #include <com/sun/star/text/XTextTableCursor.hpp>
52*b1cdbd2cSJim Jagielski #include <com/sun/star/text/XTextTablesSupplier.hpp>
53*b1cdbd2cSJim Jagielski #include <com/sun/star/text/TableColumnSeparator.hpp>
54*b1cdbd2cSJim Jagielski #include <com/sun/star/text/XTextTable.hpp>
55*b1cdbd2cSJim Jagielski #include <com/sun/star/text/XTextEmbeddedObjectsSupplier.hpp>
56*b1cdbd2cSJim Jagielski #include <com/sun/star/text/XTextEmbeddedObject.hpp>
57*b1cdbd2cSJim Jagielski #include <com/sun/star/text/XTextFramesSupplier.hpp>
58*b1cdbd2cSJim Jagielski #include <com/sun/star/text/XTextFrame.hpp>
59*b1cdbd2cSJim Jagielski 
60*b1cdbd2cSJim Jagielski #ifndef _FRMUI_HRC
61*b1cdbd2cSJim Jagielski #include <frmui.hrc>
62*b1cdbd2cSJim Jagielski #endif
63*b1cdbd2cSJim Jagielski #ifndef _CPTION_HRC
64*b1cdbd2cSJim Jagielski #include <cption.hrc>
65*b1cdbd2cSJim Jagielski #endif
66*b1cdbd2cSJim Jagielski #include <SwStyleNameMapper.hxx>
67*b1cdbd2cSJim Jagielski using namespace ::com::sun::star;
68*b1cdbd2cSJim Jagielski 
69*b1cdbd2cSJim Jagielski extern String* GetOldGrfCat();
70*b1cdbd2cSJim Jagielski extern String* GetOldTabCat();
71*b1cdbd2cSJim Jagielski extern String* GetOldFrmCat();
72*b1cdbd2cSJim Jagielski extern String* GetOldDrwCat();
73*b1cdbd2cSJim Jagielski 
74*b1cdbd2cSJim Jagielski class SwSequenceOptionDialog : public SvxStandardDialog
75*b1cdbd2cSJim Jagielski {
76*b1cdbd2cSJim Jagielski     FixedLine       aFlHeader;
77*b1cdbd2cSJim Jagielski 	FixedText 		aFtLevel;
78*b1cdbd2cSJim Jagielski 	ListBox 		aLbLevel;
79*b1cdbd2cSJim Jagielski 	FixedText 		aFtDelim;
80*b1cdbd2cSJim Jagielski 	Edit 			aEdDelim;
81*b1cdbd2cSJim Jagielski 
82*b1cdbd2cSJim Jagielski     FixedLine       aFlCatAndFrame;
83*b1cdbd2cSJim Jagielski 	FixedText		aFtCharStyle;
84*b1cdbd2cSJim Jagielski 	ListBox			aLbCharStyle;
85*b1cdbd2cSJim Jagielski     CheckBox        aApplyBorderAndShadowCB;
86*b1cdbd2cSJim Jagielski 
87*b1cdbd2cSJim Jagielski     //#i61007# order of captions
88*b1cdbd2cSJim Jagielski     FixedLine       aFlCaptionOrder;
89*b1cdbd2cSJim Jagielski     FixedText       aFtCaptionOrder;
90*b1cdbd2cSJim Jagielski     ListBox         aLbCaptionOrder;
91*b1cdbd2cSJim Jagielski 
92*b1cdbd2cSJim Jagielski     OKButton        aOKButton;
93*b1cdbd2cSJim Jagielski 	CancelButton	aCancelButton;
94*b1cdbd2cSJim Jagielski 	HelpButton 		aHelpButton;
95*b1cdbd2cSJim Jagielski 
96*b1cdbd2cSJim Jagielski     SwView&         rView;
97*b1cdbd2cSJim Jagielski 	String			aFldTypeName;
98*b1cdbd2cSJim Jagielski 
99*b1cdbd2cSJim Jagielski public:
100*b1cdbd2cSJim Jagielski 	SwSequenceOptionDialog( Window *pParent, SwView &rV,
101*b1cdbd2cSJim Jagielski 							const String& rSeqFldType );
102*b1cdbd2cSJim Jagielski 	virtual ~SwSequenceOptionDialog();
103*b1cdbd2cSJim Jagielski 	virtual void Apply();
104*b1cdbd2cSJim Jagielski 
IsApplyBorderAndShadow(void)105*b1cdbd2cSJim Jagielski     bool IsApplyBorderAndShadow( void ) { return aApplyBorderAndShadowCB.IsChecked(); }
SetApplyBorderAndShadow(bool bSet)106*b1cdbd2cSJim Jagielski     void SetApplyBorderAndShadow( bool bSet )  { aApplyBorderAndShadowCB.Check(bSet); }
107*b1cdbd2cSJim Jagielski 
108*b1cdbd2cSJim Jagielski     //#i61007# order of captions
IsOrderNumberingFirst() const109*b1cdbd2cSJim Jagielski     bool IsOrderNumberingFirst() const {return aLbCaptionOrder.GetSelectEntryPos() == 1;}
SetOrderNumberingFirst(bool bSet)110*b1cdbd2cSJim Jagielski     void SetOrderNumberingFirst(bool bSet) { aLbCaptionOrder.SelectEntryPos( bSet ? 1 : 0 ); }
111*b1cdbd2cSJim Jagielski 
112*b1cdbd2cSJim Jagielski     void    SetCharacterStyle(const String& rStyle);
113*b1cdbd2cSJim Jagielski     String  GetCharacterStyle() const;
114*b1cdbd2cSJim Jagielski };
115*b1cdbd2cSJim Jagielski 
SwCaptionDialog(Window * pParent,SwView & rV)116*b1cdbd2cSJim Jagielski SwCaptionDialog::SwCaptionDialog( Window *pParent, SwView &rV ) :
117*b1cdbd2cSJim Jagielski 
118*b1cdbd2cSJim Jagielski 	SvxStandardDialog( pParent, SW_RES(DLG_CAPTION) ),
119*b1cdbd2cSJim Jagielski 
120*b1cdbd2cSJim Jagielski     aTextText     (this, SW_RES(TXT_TEXT    )),
121*b1cdbd2cSJim Jagielski     aTextEdit     (this, SW_RES(EDT_TEXT    )),
122*b1cdbd2cSJim Jagielski     aSettingsFL  (this, SW_RES(FL_SETTINGS)),
123*b1cdbd2cSJim Jagielski     aCategoryText (this, SW_RES(TXT_CATEGORY)),
124*b1cdbd2cSJim Jagielski     aCategoryBox  (this, SW_RES(BOX_CATEGORY)),
125*b1cdbd2cSJim Jagielski     aFormatText   (this, SW_RES(TXT_FORMAT  )),
126*b1cdbd2cSJim Jagielski     aFormatBox    (this, SW_RES(BOX_FORMAT  )),
127*b1cdbd2cSJim Jagielski     aNumberingSeparatorFT(this, SW_RES(FT_NUM_SEP  )),
128*b1cdbd2cSJim Jagielski     aNumberingSeparatorED(this, SW_RES(ED_NUM_SEP  )),
129*b1cdbd2cSJim Jagielski     aSepText      (this, SW_RES(TXT_SEP     )),
130*b1cdbd2cSJim Jagielski     aSepEdit      (this, SW_RES(EDT_SEP     )),
131*b1cdbd2cSJim Jagielski     aPosText      (this, SW_RES(TXT_POS     )),
132*b1cdbd2cSJim Jagielski     aPosBox       (this, SW_RES(BOX_POS     )),
133*b1cdbd2cSJim Jagielski     aOKButton     (this, SW_RES(BTN_OK      )),
134*b1cdbd2cSJim Jagielski     aCancelButton (this, SW_RES(BTN_CANCEL  )),
135*b1cdbd2cSJim Jagielski     aHelpButton   (this, SW_RES(BTN_HELP    )),
136*b1cdbd2cSJim Jagielski     aAutoCaptionButton(this, SW_RES(BTN_AUTOCAPTION)),
137*b1cdbd2cSJim Jagielski 	aOptionButton (this, SW_RES(BTN_OPTION  )),
138*b1cdbd2cSJim Jagielski     sNone(      SW_RES( STR_CATEGORY_NONE )),
139*b1cdbd2cSJim Jagielski 	aPrevWin      (this, SW_RES(WIN_SAMPLE  )),
140*b1cdbd2cSJim Jagielski 	rView( rV ),
141*b1cdbd2cSJim Jagielski     pMgr( new SwFldMgr(rView.GetWrtShellPtr()) ),
142*b1cdbd2cSJim Jagielski     bCopyAttributes( sal_False ),
143*b1cdbd2cSJim Jagielski     bOrderNumberingFirst( SW_MOD()->GetModuleConfig()->IsCaptionOrderNumberingFirst() )
144*b1cdbd2cSJim Jagielski {
145*b1cdbd2cSJim Jagielski     //#i61007# order of captions
146*b1cdbd2cSJim Jagielski     if( bOrderNumberingFirst )
147*b1cdbd2cSJim Jagielski         ApplyCaptionOrder();
148*b1cdbd2cSJim Jagielski     SwWrtShell &rSh = rView.GetWrtShell();
149*b1cdbd2cSJim Jagielski  	uno::Reference< frame::XModel >  xModel = rView.GetDocShell()->GetBaseModel();
150*b1cdbd2cSJim Jagielski 
151*b1cdbd2cSJim Jagielski 	eType = rSh.GetSelectionType();
152*b1cdbd2cSJim Jagielski 	if ( eType & nsSelectionType::SEL_OLE )
153*b1cdbd2cSJim Jagielski 	{
154*b1cdbd2cSJim Jagielski 		eType = nsSelectionType::SEL_GRF;
155*b1cdbd2cSJim Jagielski 	 	uno::Reference< text::XTextEmbeddedObjectsSupplier >  xObjs(xModel, uno::UNO_QUERY);
156*b1cdbd2cSJim Jagielski 		xNameAccess = xObjs->getEmbeddedObjects();
157*b1cdbd2cSJim Jagielski 	}
158*b1cdbd2cSJim Jagielski 
159*b1cdbd2cSJim Jagielski 	Link aLk = LINK( this, SwCaptionDialog, ModifyHdl );
160*b1cdbd2cSJim Jagielski 	aCategoryBox.SetModifyHdl( aLk );
161*b1cdbd2cSJim Jagielski 	aTextEdit	.SetModifyHdl( aLk );
162*b1cdbd2cSJim Jagielski     aNumberingSeparatorED.SetModifyHdl ( aLk );
163*b1cdbd2cSJim Jagielski 	aSepEdit	.SetModifyHdl( aLk );
164*b1cdbd2cSJim Jagielski 
165*b1cdbd2cSJim Jagielski 	aLk = LINK(this, SwCaptionDialog, SelectHdl);
166*b1cdbd2cSJim Jagielski 	aCategoryBox.SetSelectHdl( aLk );
167*b1cdbd2cSJim Jagielski 	aFormatBox	.SetSelectHdl( aLk );
168*b1cdbd2cSJim Jagielski 	aOptionButton.SetClickHdl( LINK( this, SwCaptionDialog, OptionHdl ) );
169*b1cdbd2cSJim Jagielski 	aAutoCaptionButton.SetClickHdl(LINK(this, SwCaptionDialog, CaptionHdl));
170*b1cdbd2cSJim Jagielski 
171*b1cdbd2cSJim Jagielski     aCategoryBox.InsertEntry( sNone );
172*b1cdbd2cSJim Jagielski 	sal_uInt16 i, nCount = pMgr->GetFldTypeCount();
173*b1cdbd2cSJim Jagielski 	for (i = 0; i < nCount; i++)
174*b1cdbd2cSJim Jagielski 	{
175*b1cdbd2cSJim Jagielski 		SwFieldType *pType = pMgr->GetFldType( USHRT_MAX, i );
176*b1cdbd2cSJim Jagielski 		if( pType->Which() == RES_SETEXPFLD &&
177*b1cdbd2cSJim Jagielski 			((SwSetExpFieldType *) pType)->GetType() & nsSwGetSetExpType::GSE_SEQ )
178*b1cdbd2cSJim Jagielski             aCategoryBox.InsertEntry(pType->GetName());
179*b1cdbd2cSJim Jagielski 	}
180*b1cdbd2cSJim Jagielski 
181*b1cdbd2cSJim Jagielski     String* pString = 0;
182*b1cdbd2cSJim Jagielski 	sal_uInt16 nPoolId = 0;
183*b1cdbd2cSJim Jagielski 	if (eType & nsSelectionType::SEL_GRF)
184*b1cdbd2cSJim Jagielski 	{
185*b1cdbd2cSJim Jagielski 		nPoolId = RES_POOLCOLL_LABEL_ABB;
186*b1cdbd2cSJim Jagielski         pString = ::GetOldGrfCat();
187*b1cdbd2cSJim Jagielski 		bCopyAttributes = sal_True;
188*b1cdbd2cSJim Jagielski 		sObjectName = rSh.GetFlyName();
189*b1cdbd2cSJim Jagielski 		//if not OLE
190*b1cdbd2cSJim Jagielski 		if(!xNameAccess.is())
191*b1cdbd2cSJim Jagielski 		{
192*b1cdbd2cSJim Jagielski 		 uno::Reference< text::XTextGraphicObjectsSupplier >  xGraphics(xModel, uno::UNO_QUERY);
193*b1cdbd2cSJim Jagielski 			xNameAccess = xGraphics->getGraphicObjects();
194*b1cdbd2cSJim Jagielski 		}
195*b1cdbd2cSJim Jagielski 
196*b1cdbd2cSJim Jagielski 	}
197*b1cdbd2cSJim Jagielski 	else if( eType & nsSelectionType::SEL_TBL )
198*b1cdbd2cSJim Jagielski 	{
199*b1cdbd2cSJim Jagielski 		nPoolId = RES_POOLCOLL_LABEL_TABLE;
200*b1cdbd2cSJim Jagielski         pString = ::GetOldTabCat();
201*b1cdbd2cSJim Jagielski 		uno::Reference< text::XTextTablesSupplier >  xTables(xModel, uno::UNO_QUERY);
202*b1cdbd2cSJim Jagielski 		xNameAccess = xTables->getTextTables();
203*b1cdbd2cSJim Jagielski 		sObjectName = rSh.GetTableFmt()->GetName();
204*b1cdbd2cSJim Jagielski 	}
205*b1cdbd2cSJim Jagielski 	else if( eType & nsSelectionType::SEL_FRM )
206*b1cdbd2cSJim Jagielski 	{
207*b1cdbd2cSJim Jagielski 		nPoolId = RES_POOLCOLL_LABEL_FRAME;
208*b1cdbd2cSJim Jagielski         pString = ::GetOldFrmCat();
209*b1cdbd2cSJim Jagielski 	 	uno::Reference< text::XTextFramesSupplier >  xFrms(xModel, uno::UNO_QUERY);
210*b1cdbd2cSJim Jagielski 		xNameAccess = xFrms->getTextFrames();
211*b1cdbd2cSJim Jagielski 		sObjectName = rSh.GetFlyName();
212*b1cdbd2cSJim Jagielski 	}
213*b1cdbd2cSJim Jagielski 	else if( eType == nsSelectionType::SEL_TXT )
214*b1cdbd2cSJim Jagielski 	{
215*b1cdbd2cSJim Jagielski 		nPoolId = RES_POOLCOLL_LABEL_FRAME;
216*b1cdbd2cSJim Jagielski         pString = ::GetOldFrmCat();
217*b1cdbd2cSJim Jagielski 	}
218*b1cdbd2cSJim Jagielski 	else if( eType & nsSelectionType::SEL_DRW )
219*b1cdbd2cSJim Jagielski 	{
220*b1cdbd2cSJim Jagielski 		nPoolId = RES_POOLCOLL_LABEL_DRAWING;
221*b1cdbd2cSJim Jagielski         pString = ::GetOldDrwCat();
222*b1cdbd2cSJim Jagielski 	}
223*b1cdbd2cSJim Jagielski 	if( nPoolId )
224*b1cdbd2cSJim Jagielski 	{
225*b1cdbd2cSJim Jagielski 		if( pString && pString->Len())
226*b1cdbd2cSJim Jagielski 			aCategoryBox.SetText( *pString );
227*b1cdbd2cSJim Jagielski 		else
228*b1cdbd2cSJim Jagielski 			aCategoryBox.SetText(
229*b1cdbd2cSJim Jagielski 					SwStyleNameMapper::GetUIName( nPoolId, aEmptyStr ));
230*b1cdbd2cSJim Jagielski 	}
231*b1cdbd2cSJim Jagielski 
232*b1cdbd2cSJim Jagielski     // aFormatBox
233*b1cdbd2cSJim Jagielski 	sal_uInt16 nSelFmt = SVX_NUM_ARABIC;
234*b1cdbd2cSJim Jagielski 	nCount = pMgr->GetFldTypeCount();
235*b1cdbd2cSJim Jagielski 	SwFieldType* pFldType;
236*b1cdbd2cSJim Jagielski 	for ( i = nCount; i; )
237*b1cdbd2cSJim Jagielski 		if( ( pFldType = pMgr->GetFldType(USHRT_MAX, --i))->GetName() ==
238*b1cdbd2cSJim Jagielski             aCategoryBox.GetText() )
239*b1cdbd2cSJim Jagielski 		{
240*b1cdbd2cSJim Jagielski 			nSelFmt = (sal_uInt16)((SwSetExpFieldType*)pFldType)->GetSeqFormat();
241*b1cdbd2cSJim Jagielski 			break;
242*b1cdbd2cSJim Jagielski 		}
243*b1cdbd2cSJim Jagielski 
244*b1cdbd2cSJim Jagielski 
245*b1cdbd2cSJim Jagielski 	nCount = pMgr->GetFormatCount(TYP_SEQFLD, sal_False);
246*b1cdbd2cSJim Jagielski 	for ( i = 0; i < nCount; ++i )
247*b1cdbd2cSJim Jagielski 	{
248*b1cdbd2cSJim Jagielski         aFormatBox.InsertEntry( pMgr->GetFormatStr(TYP_SEQFLD, i) );
249*b1cdbd2cSJim Jagielski 		sal_uInt16 nFmtId = pMgr->GetFormatId(TYP_SEQFLD, i);
250*b1cdbd2cSJim Jagielski         aFormatBox.SetEntryData( i, reinterpret_cast<void*>( nFmtId ) );
251*b1cdbd2cSJim Jagielski 		if( nFmtId == nSelFmt )
252*b1cdbd2cSJim Jagielski 			aFormatBox.SelectEntryPos( i );
253*b1cdbd2cSJim Jagielski 	}
254*b1cdbd2cSJim Jagielski 
255*b1cdbd2cSJim Jagielski 	// aPosBox
256*b1cdbd2cSJim Jagielski 	switch (eType)
257*b1cdbd2cSJim Jagielski 	{
258*b1cdbd2cSJim Jagielski 		case nsSelectionType::SEL_GRF:
259*b1cdbd2cSJim Jagielski 		case nsSelectionType::SEL_TBL:
260*b1cdbd2cSJim Jagielski 		case nsSelectionType::SEL_TBL | nsSelectionType::SEL_NUM:
261*b1cdbd2cSJim Jagielski 		case nsSelectionType::SEL_TBL | nsSelectionType::SEL_TXT:
262*b1cdbd2cSJim Jagielski 		case nsSelectionType::SEL_TBL | nsSelectionType::SEL_NUM | nsSelectionType::SEL_TXT:
263*b1cdbd2cSJim Jagielski 		case nsSelectionType::SEL_DRW:
264*b1cdbd2cSJim Jagielski 		case nsSelectionType::SEL_DRW | nsSelectionType::SEL_BEZ:
265*b1cdbd2cSJim Jagielski 			aPosBox.InsertEntry(SW_RESSTR(STR_ABOVE));
266*b1cdbd2cSJim Jagielski 			aPosBox.InsertEntry(SW_RESSTR(STR_CP_BELOW));
267*b1cdbd2cSJim Jagielski 			break;
268*b1cdbd2cSJim Jagielski 		case nsSelectionType::SEL_FRM:
269*b1cdbd2cSJim Jagielski 		case nsSelectionType::SEL_TXT:
270*b1cdbd2cSJim Jagielski 			aPosBox.InsertEntry(SW_RESSTR(STR_BEGINNING));
271*b1cdbd2cSJim Jagielski 			aPosBox.InsertEntry(SW_RESSTR(STR_END	  ));
272*b1cdbd2cSJim Jagielski 			break;
273*b1cdbd2cSJim Jagielski 	}
274*b1cdbd2cSJim Jagielski 	aPosBox.SelectEntryPos(1);
275*b1cdbd2cSJim Jagielski 	if (eType & (nsSelectionType::SEL_GRF|nsSelectionType::SEL_DRW))
276*b1cdbd2cSJim Jagielski     {
277*b1cdbd2cSJim Jagielski         aPosText.Enable( sal_False );
278*b1cdbd2cSJim Jagielski         aPosBox.Enable( sal_False );
279*b1cdbd2cSJim Jagielski     }
280*b1cdbd2cSJim Jagielski 
281*b1cdbd2cSJim Jagielski 	aCategoryBox.GetModifyHdl().Call(&aCategoryBox);
282*b1cdbd2cSJim Jagielski 
283*b1cdbd2cSJim Jagielski 	FreeResource();
284*b1cdbd2cSJim Jagielski 
285*b1cdbd2cSJim Jagielski     CheckButtonWidth();
286*b1cdbd2cSJim Jagielski 	aTextEdit.GrabFocus();
287*b1cdbd2cSJim Jagielski 	DrawSample();
288*b1cdbd2cSJim Jagielski }
289*b1cdbd2cSJim Jagielski 
Apply()290*b1cdbd2cSJim Jagielski void SwCaptionDialog::Apply()
291*b1cdbd2cSJim Jagielski {
292*b1cdbd2cSJim Jagielski 	InsCaptionOpt aOpt;
293*b1cdbd2cSJim Jagielski 	aOpt.UseCaption() = sal_True;
294*b1cdbd2cSJim Jagielski     String aName( aCategoryBox.GetText() );
295*b1cdbd2cSJim Jagielski     if ( aName == sNone )
296*b1cdbd2cSJim Jagielski         aOpt.SetCategory( aEmptyStr );
297*b1cdbd2cSJim Jagielski     else
298*b1cdbd2cSJim Jagielski     {
299*b1cdbd2cSJim Jagielski         aName.EraseLeadingChars( ' ' );
300*b1cdbd2cSJim Jagielski         aName.EraseTrailingChars( ' ' );
301*b1cdbd2cSJim Jagielski         aOpt.SetCategory( aName );
302*b1cdbd2cSJim Jagielski     }
303*b1cdbd2cSJim Jagielski     aOpt.SetNumType( (sal_uInt16)(sal_uIntPtr)aFormatBox.GetEntryData( aFormatBox.GetSelectEntryPos() ) );
304*b1cdbd2cSJim Jagielski     aOpt.SetSeparator( aSepEdit.IsEnabled() ? aSepEdit.GetText() : String() );
305*b1cdbd2cSJim Jagielski     aOpt.SetNumSeparator( aNumberingSeparatorED.GetText() );
306*b1cdbd2cSJim Jagielski     aOpt.SetCaption( aTextEdit.GetText() );
307*b1cdbd2cSJim Jagielski     aOpt.SetPos( aPosBox.GetSelectEntryPos() );
308*b1cdbd2cSJim Jagielski 	aOpt.IgnoreSeqOpts() = sal_True;
309*b1cdbd2cSJim Jagielski 	aOpt.CopyAttributes() = bCopyAttributes;
310*b1cdbd2cSJim Jagielski     aOpt.SetCharacterStyle( sCharacterStyle );
311*b1cdbd2cSJim Jagielski     rView.InsertCaption( &aOpt );
312*b1cdbd2cSJim Jagielski }
313*b1cdbd2cSJim Jagielski 
IMPL_LINK_INLINE_START(SwCaptionDialog,OptionHdl,Button *,pButton)314*b1cdbd2cSJim Jagielski IMPL_LINK_INLINE_START( SwCaptionDialog, OptionHdl, Button*, pButton )
315*b1cdbd2cSJim Jagielski {
316*b1cdbd2cSJim Jagielski     String sFldTypeName = aCategoryBox.GetText();
317*b1cdbd2cSJim Jagielski     if(sFldTypeName == sNone)
318*b1cdbd2cSJim Jagielski         sFldTypeName = aEmptyStr;
319*b1cdbd2cSJim Jagielski     SwSequenceOptionDialog  aDlg( pButton, rView, sFldTypeName );
320*b1cdbd2cSJim Jagielski     aDlg.SetApplyBorderAndShadow(bCopyAttributes);
321*b1cdbd2cSJim Jagielski     aDlg.SetCharacterStyle( sCharacterStyle );
322*b1cdbd2cSJim Jagielski     aDlg.SetOrderNumberingFirst( bOrderNumberingFirst );
323*b1cdbd2cSJim Jagielski 	aDlg.Execute();
324*b1cdbd2cSJim Jagielski     bCopyAttributes = aDlg.IsApplyBorderAndShadow();
325*b1cdbd2cSJim Jagielski     sCharacterStyle = aDlg.GetCharacterStyle();
326*b1cdbd2cSJim Jagielski     //#i61007# order of captions
327*b1cdbd2cSJim Jagielski     if( bOrderNumberingFirst != aDlg.IsOrderNumberingFirst() )
328*b1cdbd2cSJim Jagielski     {
329*b1cdbd2cSJim Jagielski         bOrderNumberingFirst = aDlg.IsOrderNumberingFirst();
330*b1cdbd2cSJim Jagielski         SW_MOD()->GetModuleConfig()->SetCaptionOrderNumberingFirst(bOrderNumberingFirst);
331*b1cdbd2cSJim Jagielski         ApplyCaptionOrder();
332*b1cdbd2cSJim Jagielski     }
333*b1cdbd2cSJim Jagielski     DrawSample();
334*b1cdbd2cSJim Jagielski 	return 0;
335*b1cdbd2cSJim Jagielski }
IMPL_LINK_INLINE_END(SwCaptionDialog,OptionHdl,Button *,EMPTYARG)336*b1cdbd2cSJim Jagielski IMPL_LINK_INLINE_END( SwCaptionDialog, OptionHdl, Button*, EMPTYARG )
337*b1cdbd2cSJim Jagielski 
338*b1cdbd2cSJim Jagielski IMPL_LINK_INLINE_START( SwCaptionDialog, SelectHdl, ListBox *, EMPTYARG )
339*b1cdbd2cSJim Jagielski {
340*b1cdbd2cSJim Jagielski 	DrawSample();
341*b1cdbd2cSJim Jagielski 	return 0;
342*b1cdbd2cSJim Jagielski }
IMPL_LINK_INLINE_END(SwCaptionDialog,SelectHdl,ListBox *,EMPTYARG)343*b1cdbd2cSJim Jagielski IMPL_LINK_INLINE_END( SwCaptionDialog, SelectHdl, ListBox *, EMPTYARG )
344*b1cdbd2cSJim Jagielski 
345*b1cdbd2cSJim Jagielski 
346*b1cdbd2cSJim Jagielski 
347*b1cdbd2cSJim Jagielski IMPL_LINK( SwCaptionDialog, ModifyHdl, Edit *, EMPTYARG )
348*b1cdbd2cSJim Jagielski {
349*b1cdbd2cSJim Jagielski     SwWrtShell &rSh = rView.GetWrtShell();
350*b1cdbd2cSJim Jagielski     String sFldTypeName = aCategoryBox.GetText();
351*b1cdbd2cSJim Jagielski     sal_Bool bCorrectFldName = sFldTypeName.Len() > 0;
352*b1cdbd2cSJim Jagielski     sal_Bool bNone = sFldTypeName == sNone;
353*b1cdbd2cSJim Jagielski     SwFieldType* pType = (bCorrectFldName && !bNone)
354*b1cdbd2cSJim Jagielski                     ? rSh.GetFldType( RES_SETEXPFLD, sFldTypeName )
355*b1cdbd2cSJim Jagielski                     : 0;
356*b1cdbd2cSJim Jagielski     aOKButton.Enable( bCorrectFldName &&
357*b1cdbd2cSJim Jagielski                         (!pType ||
358*b1cdbd2cSJim Jagielski                             ((SwSetExpFieldType*)pType)->GetType() == nsSwGetSetExpType::GSE_SEQ)
359*b1cdbd2cSJim Jagielski                                 && 0 != sFldTypeName.Len() );
360*b1cdbd2cSJim Jagielski     aOptionButton.Enable( aOKButton.IsEnabled() && !bNone );
361*b1cdbd2cSJim Jagielski     aFormatText.Enable( !bNone );
362*b1cdbd2cSJim Jagielski     aFormatBox.Enable( !bNone );
363*b1cdbd2cSJim Jagielski     aSepText.Enable( !bNone );
364*b1cdbd2cSJim Jagielski     aSepEdit.Enable( !bNone );
365*b1cdbd2cSJim Jagielski     DrawSample();
366*b1cdbd2cSJim Jagielski 	return 0;
367*b1cdbd2cSJim Jagielski }
368*b1cdbd2cSJim Jagielski 
IMPL_LINK(SwCaptionDialog,CaptionHdl,PushButton *,EMPTYARG)369*b1cdbd2cSJim Jagielski IMPL_LINK(SwCaptionDialog, CaptionHdl, PushButton*, EMPTYARG)
370*b1cdbd2cSJim Jagielski {
371*b1cdbd2cSJim Jagielski 	SfxItemSet	aSet( rView.GetDocShell()->GetDoc()->GetAttrPool() );
372*b1cdbd2cSJim Jagielski 	SwCaptionOptDlg aDlg( this, aSet );
373*b1cdbd2cSJim Jagielski 	aDlg.Execute();
374*b1cdbd2cSJim Jagielski 
375*b1cdbd2cSJim Jagielski 	return 0;
376*b1cdbd2cSJim Jagielski }
377*b1cdbd2cSJim Jagielski 
DrawSample()378*b1cdbd2cSJim Jagielski void SwCaptionDialog::DrawSample()
379*b1cdbd2cSJim Jagielski {
380*b1cdbd2cSJim Jagielski 	String aStr;
381*b1cdbd2cSJim Jagielski 	String sCaption = aTextEdit.GetText();
382*b1cdbd2cSJim Jagielski 
383*b1cdbd2cSJim Jagielski 	// Nummer
384*b1cdbd2cSJim Jagielski     String sFldTypeName = aCategoryBox.GetText();
385*b1cdbd2cSJim Jagielski     sal_Bool bNone = sFldTypeName == sNone;
386*b1cdbd2cSJim Jagielski     if( !bNone )
387*b1cdbd2cSJim Jagielski     {
388*b1cdbd2cSJim Jagielski         sal_uInt16 nNumFmt = (sal_uInt16)(sal_uIntPtr)aFormatBox.GetEntryData(
389*b1cdbd2cSJim Jagielski                                         aFormatBox.GetSelectEntryPos() );
390*b1cdbd2cSJim Jagielski         if( SVX_NUM_NUMBER_NONE != nNumFmt )
391*b1cdbd2cSJim Jagielski         {
392*b1cdbd2cSJim Jagielski             // Kategorie
393*b1cdbd2cSJim Jagielski             //#i61007# order of captions
394*b1cdbd2cSJim Jagielski             if( !bOrderNumberingFirst )
395*b1cdbd2cSJim Jagielski             {
396*b1cdbd2cSJim Jagielski                 aStr += sFldTypeName;
397*b1cdbd2cSJim Jagielski                 if ( aStr.Len() > 0 )
398*b1cdbd2cSJim Jagielski                     aStr += ' ';
399*b1cdbd2cSJim Jagielski             }
400*b1cdbd2cSJim Jagielski 
401*b1cdbd2cSJim Jagielski             SwWrtShell &rSh = rView.GetWrtShell();
402*b1cdbd2cSJim Jagielski             SwSetExpFieldType* pFldType = (SwSetExpFieldType*)rSh.GetFldType(
403*b1cdbd2cSJim Jagielski                                             RES_SETEXPFLD, sFldTypeName );
404*b1cdbd2cSJim Jagielski             if( pFldType && pFldType->GetOutlineLvl() < MAXLEVEL )
405*b1cdbd2cSJim Jagielski             {
406*b1cdbd2cSJim Jagielski                 sal_Int8 nLvl = pFldType->GetOutlineLvl();
407*b1cdbd2cSJim Jagielski                 SwNumberTree::tNumberVector aNumVector;
408*b1cdbd2cSJim Jagielski                 for( sal_Int8 i = 0; i <= nLvl; ++i )
409*b1cdbd2cSJim Jagielski                     aNumVector.push_back(1);
410*b1cdbd2cSJim Jagielski 
411*b1cdbd2cSJim Jagielski                 String sNumber( rSh.GetOutlineNumRule()->
412*b1cdbd2cSJim Jagielski                                 MakeNumString(aNumVector, sal_False ));
413*b1cdbd2cSJim Jagielski                 if( sNumber.Len() )
414*b1cdbd2cSJim Jagielski                     (aStr += sNumber) += pFldType->GetDelimiter();
415*b1cdbd2cSJim Jagielski             }
416*b1cdbd2cSJim Jagielski 
417*b1cdbd2cSJim Jagielski             switch( nNumFmt )
418*b1cdbd2cSJim Jagielski             {
419*b1cdbd2cSJim Jagielski             case SVX_NUM_CHARS_UPPER_LETTER:    aStr += 'A'; break;
420*b1cdbd2cSJim Jagielski             case SVX_NUM_CHARS_UPPER_LETTER_N:  aStr += 'A'; break;
421*b1cdbd2cSJim Jagielski             case SVX_NUM_CHARS_LOWER_LETTER:    aStr += 'a'; break;
422*b1cdbd2cSJim Jagielski             case SVX_NUM_CHARS_LOWER_LETTER_N:  aStr += 'a'; break;
423*b1cdbd2cSJim Jagielski             case SVX_NUM_ROMAN_UPPER:           aStr += 'I'; break;
424*b1cdbd2cSJim Jagielski             case SVX_NUM_ROMAN_LOWER:           aStr += 'i'; break;
425*b1cdbd2cSJim Jagielski             //case ARABIC:
426*b1cdbd2cSJim Jagielski             default:                    aStr += '1'; break;
427*b1cdbd2cSJim Jagielski             }
428*b1cdbd2cSJim Jagielski             //#i61007# order of captions
429*b1cdbd2cSJim Jagielski             if( bOrderNumberingFirst )
430*b1cdbd2cSJim Jagielski             {
431*b1cdbd2cSJim Jagielski                 aStr += aNumberingSeparatorED.GetText();
432*b1cdbd2cSJim Jagielski                 aStr += sFldTypeName;
433*b1cdbd2cSJim Jagielski             }
434*b1cdbd2cSJim Jagielski 
435*b1cdbd2cSJim Jagielski         }
436*b1cdbd2cSJim Jagielski         if( sCaption.Len() > 0 )
437*b1cdbd2cSJim Jagielski 	{
438*b1cdbd2cSJim Jagielski             aStr += aSepEdit.GetText();
439*b1cdbd2cSJim Jagielski         }
440*b1cdbd2cSJim Jagielski     }
441*b1cdbd2cSJim Jagielski     aStr += sCaption;
442*b1cdbd2cSJim Jagielski 	// do preview!
443*b1cdbd2cSJim Jagielski 	aPrevWin.SetPreviewText( aStr );
444*b1cdbd2cSJim Jagielski }
445*b1cdbd2cSJim Jagielski 
CheckButtonWidth()446*b1cdbd2cSJim Jagielski void SwCaptionDialog::CheckButtonWidth()
447*b1cdbd2cSJim Jagielski {
448*b1cdbd2cSJim Jagielski     // check if the text of the AutoCaption button is to wide
449*b1cdbd2cSJim Jagielski     const long nOffset = 10;
450*b1cdbd2cSJim Jagielski     String sText = aAutoCaptionButton.GetText();
451*b1cdbd2cSJim Jagielski     long nTxtW = aAutoCaptionButton.GetTextWidth( sText );
452*b1cdbd2cSJim Jagielski     if ( sText.Search( '~' ) == STRING_NOTFOUND )
453*b1cdbd2cSJim Jagielski         nTxtW += nOffset;
454*b1cdbd2cSJim Jagielski     long nBtnW = aAutoCaptionButton.GetSizePixel().Width();
455*b1cdbd2cSJim Jagielski     if ( nTxtW > nBtnW )
456*b1cdbd2cSJim Jagielski     {
457*b1cdbd2cSJim Jagielski         // then broaden all buttons
458*b1cdbd2cSJim Jagielski         Size aNewSize;
459*b1cdbd2cSJim Jagielski         long nDelta = Max( ( nTxtW - nBtnW ), nOffset );
460*b1cdbd2cSJim Jagielski         Button* pBtns[] =
461*b1cdbd2cSJim Jagielski         {
462*b1cdbd2cSJim Jagielski             &aOKButton, &aCancelButton, &aHelpButton, &aAutoCaptionButton, &aOptionButton
463*b1cdbd2cSJim Jagielski         };
464*b1cdbd2cSJim Jagielski         Button** pCurrent = pBtns;
465*b1cdbd2cSJim Jagielski         for ( sal_uInt32 i = 0; i < sizeof( pBtns ) / sizeof( pBtns[ 0 ] ); ++i, ++pCurrent )
466*b1cdbd2cSJim Jagielski         {
467*b1cdbd2cSJim Jagielski             aNewSize = (*pCurrent)->GetSizePixel();
468*b1cdbd2cSJim Jagielski             aNewSize.Width() += nDelta;
469*b1cdbd2cSJim Jagielski             (*pCurrent)->SetSizePixel( aNewSize );
470*b1cdbd2cSJim Jagielski         }
471*b1cdbd2cSJim Jagielski         // and the dialog
472*b1cdbd2cSJim Jagielski         aNewSize = GetOutputSizePixel();
473*b1cdbd2cSJim Jagielski         aNewSize.Width() += nDelta;
474*b1cdbd2cSJim Jagielski         SetOutputSizePixel( aNewSize );
475*b1cdbd2cSJim Jagielski     }
476*b1cdbd2cSJim Jagielski }
477*b1cdbd2cSJim Jagielski 
~SwCaptionDialog()478*b1cdbd2cSJim Jagielski SwCaptionDialog::~SwCaptionDialog()
479*b1cdbd2cSJim Jagielski {
480*b1cdbd2cSJim Jagielski 	delete pMgr;
481*b1cdbd2cSJim Jagielski }
482*b1cdbd2cSJim Jagielski /*  */
483*b1cdbd2cSJim Jagielski 
484*b1cdbd2cSJim Jagielski 
SwSequenceOptionDialog(Window * pParent,SwView & rV,const String & rSeqFldType)485*b1cdbd2cSJim Jagielski SwSequenceOptionDialog::SwSequenceOptionDialog( Window *pParent, SwView &rV,
486*b1cdbd2cSJim Jagielski 											const String& rSeqFldType )
487*b1cdbd2cSJim Jagielski 	: SvxStandardDialog( pParent, SW_RES(DLG_SEQUENCE_OPTION) ),
488*b1cdbd2cSJim Jagielski     aFlHeader       (this, SW_RES(FL_HEADER    )),
489*b1cdbd2cSJim Jagielski     aFtLevel        (this, SW_RES(FT_LEVEL     )),
490*b1cdbd2cSJim Jagielski     aLbLevel        (this, SW_RES(LB_LEVEL     )),
491*b1cdbd2cSJim Jagielski     aFtDelim        (this, SW_RES(FT_SEPARATOR )),
492*b1cdbd2cSJim Jagielski     aEdDelim        (this, SW_RES(ED_SEPARATOR )),
493*b1cdbd2cSJim Jagielski     aFlCatAndFrame  (this, SW_RES(FL_CATANDFRAME)),
494*b1cdbd2cSJim Jagielski     aFtCharStyle    (this, SW_RES(FT_CHARSTYLE )),
495*b1cdbd2cSJim Jagielski     aLbCharStyle    (this, SW_RES(LB_CHARSTYLE )),
496*b1cdbd2cSJim Jagielski     aApplyBorderAndShadowCB(this, SW_RES(CB_APPLYBAS)),
497*b1cdbd2cSJim Jagielski     aFlCaptionOrder(this, SW_RES( FL_ORDER )), //#i61007# order of captions
498*b1cdbd2cSJim Jagielski     aFtCaptionOrder(this, SW_RES( FT_ORDER )),
499*b1cdbd2cSJim Jagielski     aLbCaptionOrder(this, SW_RES( LB_ORDER )),
500*b1cdbd2cSJim Jagielski 	aOKButton		(this, SW_RES(BTN_OK	   )),
501*b1cdbd2cSJim Jagielski 	aCancelButton	(this, SW_RES(BTN_CANCEL   )),
502*b1cdbd2cSJim Jagielski 	aHelpButton		(this, SW_RES(BTN_HELP     )),
503*b1cdbd2cSJim Jagielski 
504*b1cdbd2cSJim Jagielski     rView( rV ),
505*b1cdbd2cSJim Jagielski     aFldTypeName( rSeqFldType )
506*b1cdbd2cSJim Jagielski {
507*b1cdbd2cSJim Jagielski 	FreeResource();
508*b1cdbd2cSJim Jagielski 	SwWrtShell &rSh = rView.GetWrtShell();
509*b1cdbd2cSJim Jagielski 
510*b1cdbd2cSJim Jagielski 	for( sal_uInt16 n = 0; n < MAXLEVEL; ++n )
511*b1cdbd2cSJim Jagielski 		aLbLevel.InsertEntry( String::CreateFromInt32(n+1) );
512*b1cdbd2cSJim Jagielski 
513*b1cdbd2cSJim Jagielski 	SwSetExpFieldType* pFldType = (SwSetExpFieldType*)rSh.GetFldType(
514*b1cdbd2cSJim Jagielski 										RES_SETEXPFLD, aFldTypeName );
515*b1cdbd2cSJim Jagielski 
516*b1cdbd2cSJim Jagielski 	sal_Unicode nLvl = MAXLEVEL;
517*b1cdbd2cSJim Jagielski 	String sDelim( String::CreateFromAscii( ": " ) );
518*b1cdbd2cSJim Jagielski 	if( pFldType )
519*b1cdbd2cSJim Jagielski 	{
520*b1cdbd2cSJim Jagielski 		sDelim = pFldType->GetDelimiter();
521*b1cdbd2cSJim Jagielski 		nLvl = pFldType->GetOutlineLvl();
522*b1cdbd2cSJim Jagielski 	}
523*b1cdbd2cSJim Jagielski 
524*b1cdbd2cSJim Jagielski 	aLbLevel.SelectEntryPos( nLvl < MAXLEVEL ? nLvl + 1 : 0 );
525*b1cdbd2cSJim Jagielski 	aEdDelim.SetText( sDelim );
526*b1cdbd2cSJim Jagielski 
527*b1cdbd2cSJim Jagielski 	::FillCharStyleListBox( aLbCharStyle, rView.GetDocShell(), sal_True, sal_True );
528*b1cdbd2cSJim Jagielski 	aLbCharStyle.SelectEntryPos( 0 );
529*b1cdbd2cSJim Jagielski }
530*b1cdbd2cSJim Jagielski 
~SwSequenceOptionDialog()531*b1cdbd2cSJim Jagielski SwSequenceOptionDialog::~SwSequenceOptionDialog()
532*b1cdbd2cSJim Jagielski {
533*b1cdbd2cSJim Jagielski }
534*b1cdbd2cSJim Jagielski 
Apply()535*b1cdbd2cSJim Jagielski void SwSequenceOptionDialog::Apply()
536*b1cdbd2cSJim Jagielski {
537*b1cdbd2cSJim Jagielski 	SwWrtShell &rSh = rView.GetWrtShell();
538*b1cdbd2cSJim Jagielski 	SwSetExpFieldType* pFldType = (SwSetExpFieldType*)rSh.GetFldType(
539*b1cdbd2cSJim Jagielski 										RES_SETEXPFLD, aFldTypeName );
540*b1cdbd2cSJim Jagielski 
541*b1cdbd2cSJim Jagielski 	sal_Int8 nLvl = (sal_Int8)( aLbLevel.GetSelectEntryPos() - 1);
542*b1cdbd2cSJim Jagielski 	sal_Unicode cDelim = aEdDelim.GetText().GetChar(0);
543*b1cdbd2cSJim Jagielski 
544*b1cdbd2cSJim Jagielski 	sal_Bool bUpdate = sal_True;
545*b1cdbd2cSJim Jagielski 	if( pFldType )
546*b1cdbd2cSJim Jagielski 	{
547*b1cdbd2cSJim Jagielski 		pFldType->SetDelimiter( cDelim );
548*b1cdbd2cSJim Jagielski 		pFldType->SetOutlineLvl( nLvl );
549*b1cdbd2cSJim Jagielski 	}
550*b1cdbd2cSJim Jagielski     else if( aFldTypeName.Len() && nLvl < MAXLEVEL )
551*b1cdbd2cSJim Jagielski 	{
552*b1cdbd2cSJim Jagielski 		// dann muessen wir das mal einfuegen
553*b1cdbd2cSJim Jagielski 		SwSetExpFieldType aFldType( rSh.GetDoc(), aFldTypeName, nsSwGetSetExpType::GSE_SEQ );
554*b1cdbd2cSJim Jagielski 		aFldType.SetDelimiter( cDelim );
555*b1cdbd2cSJim Jagielski 		aFldType.SetOutlineLvl( nLvl );
556*b1cdbd2cSJim Jagielski 		rSh.InsertFldType( aFldType );
557*b1cdbd2cSJim Jagielski 	}
558*b1cdbd2cSJim Jagielski 	else
559*b1cdbd2cSJim Jagielski 		bUpdate = sal_False;
560*b1cdbd2cSJim Jagielski 
561*b1cdbd2cSJim Jagielski 	if( bUpdate )
562*b1cdbd2cSJim Jagielski 		rSh.UpdateExpFlds();
563*b1cdbd2cSJim Jagielski }
564*b1cdbd2cSJim Jagielski 
565*b1cdbd2cSJim Jagielski /*-- 24.08.2004 16:13:53---------------------------------------------------
566*b1cdbd2cSJim Jagielski 
567*b1cdbd2cSJim Jagielski   -----------------------------------------------------------------------*/
GetCharacterStyle() const568*b1cdbd2cSJim Jagielski String  SwSequenceOptionDialog::GetCharacterStyle() const
569*b1cdbd2cSJim Jagielski {
570*b1cdbd2cSJim Jagielski     String sRet;
571*b1cdbd2cSJim Jagielski     if(aLbCharStyle.GetSelectEntryPos())
572*b1cdbd2cSJim Jagielski         sRet = aLbCharStyle.GetSelectEntry();
573*b1cdbd2cSJim Jagielski     return sRet;
574*b1cdbd2cSJim Jagielski }
575*b1cdbd2cSJim Jagielski 
576*b1cdbd2cSJim Jagielski /*-- 24.08.2004 16:14:00---------------------------------------------------
577*b1cdbd2cSJim Jagielski 
578*b1cdbd2cSJim Jagielski   -----------------------------------------------------------------------*/
SetCharacterStyle(const String & rStyle)579*b1cdbd2cSJim Jagielski void    SwSequenceOptionDialog::SetCharacterStyle(const String& rStyle)
580*b1cdbd2cSJim Jagielski {
581*b1cdbd2cSJim Jagielski     aLbCharStyle.SelectEntryPos(0);
582*b1cdbd2cSJim Jagielski     aLbCharStyle.SelectEntry(rStyle);
583*b1cdbd2cSJim Jagielski }
584*b1cdbd2cSJim Jagielski 
PreNotify(NotifyEvent & rNEvt)585*b1cdbd2cSJim Jagielski long SwCaptionDialog::CategoryBox::PreNotify( NotifyEvent& rNEvt )
586*b1cdbd2cSJim Jagielski {
587*b1cdbd2cSJim Jagielski 	long nHandled = 0;
588*b1cdbd2cSJim Jagielski 	if( rNEvt.GetType() == EVENT_KEYINPUT &&
589*b1cdbd2cSJim Jagielski 		rNEvt.GetKeyEvent()->GetCharCode() )
590*b1cdbd2cSJim Jagielski 	{
591*b1cdbd2cSJim Jagielski         const KeyEvent* pEvent = rNEvt.GetKeyEvent();
592*b1cdbd2cSJim Jagielski         const KeyCode&  rKeyCode = pEvent->GetKeyCode();
593*b1cdbd2cSJim Jagielski         sal_uInt16 nTmpCode = rKeyCode.GetFullCode() & ~KEY_ALLMODTYPE;
594*b1cdbd2cSJim Jagielski 
595*b1cdbd2cSJim Jagielski         if(nTmpCode != KEY_BACKSPACE && nTmpCode != KEY_RETURN
596*b1cdbd2cSJim Jagielski                 && nTmpCode != KEY_TAB && nTmpCode != KEY_ESCAPE)
597*b1cdbd2cSJim Jagielski         {
598*b1cdbd2cSJim Jagielski             String sKey( pEvent->GetCharCode() ), sName( GetText() );
599*b1cdbd2cSJim Jagielski             Selection aSel( GetSelection() );
600*b1cdbd2cSJim Jagielski             aSel.Justify();
601*b1cdbd2cSJim Jagielski             if( aSel.Len() )
602*b1cdbd2cSJim Jagielski                 sName.Erase( (xub_StrLen)aSel.Min(), (xub_StrLen)aSel.Len() );
603*b1cdbd2cSJim Jagielski             sName.Insert( sKey, (xub_StrLen)aSel.Min() );
604*b1cdbd2cSJim Jagielski             if( !SwCalc::IsValidVarName( sName ))
605*b1cdbd2cSJim Jagielski                 nHandled = 1;
606*b1cdbd2cSJim Jagielski         }
607*b1cdbd2cSJim Jagielski 	}
608*b1cdbd2cSJim Jagielski 	if(!nHandled)
609*b1cdbd2cSJim Jagielski 		nHandled = ComboBox::PreNotify( rNEvt );
610*b1cdbd2cSJim Jagielski 	return nHandled;
611*b1cdbd2cSJim Jagielski }
612*b1cdbd2cSJim Jagielski /*-- 01.11.2007 10:45:51---------------------------------------------------
613*b1cdbd2cSJim Jagielski     //#i61007# order of captions
614*b1cdbd2cSJim Jagielski   -----------------------------------------------------------------------*/
lcl_MoveH(Window & rWin,sal_Int32 nMove)615*b1cdbd2cSJim Jagielski void lcl_MoveH( Window& rWin, sal_Int32 nMove )
616*b1cdbd2cSJim Jagielski {
617*b1cdbd2cSJim Jagielski     Point aPos( rWin.GetPosPixel() );
618*b1cdbd2cSJim Jagielski     aPos.Y() += nMove;
619*b1cdbd2cSJim Jagielski     rWin.SetPosPixel(aPos);
620*b1cdbd2cSJim Jagielski }
ApplyCaptionOrder()621*b1cdbd2cSJim Jagielski void SwCaptionDialog::ApplyCaptionOrder()
622*b1cdbd2cSJim Jagielski {
623*b1cdbd2cSJim Jagielski     //have the settings changed?
624*b1cdbd2cSJim Jagielski     bool bVisible = aNumberingSeparatorED.IsVisible() != 0;
625*b1cdbd2cSJim Jagielski     if( bOrderNumberingFirst != bVisible )
626*b1cdbd2cSJim Jagielski     {
627*b1cdbd2cSJim Jagielski         sal_Int32 nDiff = aPosBox.GetPosPixel().Y() - aSepEdit.GetPosPixel().Y();
628*b1cdbd2cSJim Jagielski 
629*b1cdbd2cSJim Jagielski         aNumberingSeparatorFT.Show( bOrderNumberingFirst );
630*b1cdbd2cSJim Jagielski         aNumberingSeparatorED.Show( bOrderNumberingFirst );
631*b1cdbd2cSJim Jagielski         if( !bOrderNumberingFirst )
632*b1cdbd2cSJim Jagielski         {
633*b1cdbd2cSJim Jagielski             nDiff = -nDiff;
634*b1cdbd2cSJim Jagielski         }
635*b1cdbd2cSJim Jagielski         lcl_MoveH( aCategoryText, 2 * nDiff);
636*b1cdbd2cSJim Jagielski         lcl_MoveH( aFormatText, -nDiff );
637*b1cdbd2cSJim Jagielski         lcl_MoveH( aFormatBox, -nDiff );
638*b1cdbd2cSJim Jagielski         lcl_MoveH( aCategoryBox, 2 * nDiff);
639*b1cdbd2cSJim Jagielski         lcl_MoveH( aSepText, nDiff );
640*b1cdbd2cSJim Jagielski         lcl_MoveH( aSepEdit, nDiff );
641*b1cdbd2cSJim Jagielski         lcl_MoveH( aPosText, nDiff );
642*b1cdbd2cSJim Jagielski         lcl_MoveH( aPosBox, nDiff );
643*b1cdbd2cSJim Jagielski         lcl_MoveH( aPrevWin, nDiff );
644*b1cdbd2cSJim Jagielski         Size aDlgSize( GetSizePixel() );
645*b1cdbd2cSJim Jagielski         aDlgSize.Height() += nDiff;
646*b1cdbd2cSJim Jagielski         SetSizePixel( aDlgSize );
647*b1cdbd2cSJim Jagielski     }
648*b1cdbd2cSJim Jagielski }
649