xref: /trunk/main/cui/source/tabpages/tplnedef.cxx (revision 7ea7a1cc)
12ee96f1cSAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
32ee96f1cSAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
42ee96f1cSAndrew Rist  * or more contributor license agreements.  See the NOTICE file
52ee96f1cSAndrew Rist  * distributed with this work for additional information
62ee96f1cSAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
72ee96f1cSAndrew Rist  * to you under the Apache License, Version 2.0 (the
82ee96f1cSAndrew Rist  * "License"); you may not use this file except in compliance
92ee96f1cSAndrew Rist  * with the License.  You may obtain a copy of the License at
102ee96f1cSAndrew Rist  *
112ee96f1cSAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
122ee96f1cSAndrew Rist  *
132ee96f1cSAndrew Rist  * Unless required by applicable law or agreed to in writing,
142ee96f1cSAndrew Rist  * software distributed under the License is distributed on an
152ee96f1cSAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
162ee96f1cSAndrew Rist  * KIND, either express or implied.  See the License for the
172ee96f1cSAndrew Rist  * specific language governing permissions and limitations
182ee96f1cSAndrew Rist  * under the License.
192ee96f1cSAndrew Rist  *
202ee96f1cSAndrew Rist  *************************************************************/
212ee96f1cSAndrew Rist 
222ee96f1cSAndrew Rist 
23cdf0e10cSrcweir 
24cdf0e10cSrcweir // MARKER(update_precomp.py): autogen include statement, do not remove
25cdf0e10cSrcweir #include "precompiled_cui.hxx"
26cdf0e10cSrcweir 
27cdf0e10cSrcweir // include ---------------------------------------------------------------
28cdf0e10cSrcweir #include <tools/shl.hxx>
29cdf0e10cSrcweir #include <tools/urlobj.hxx>
30cdf0e10cSrcweir #include <vcl/msgbox.hxx>
31cdf0e10cSrcweir #include <unotools/pathoptions.hxx>
32cdf0e10cSrcweir #include <sfx2/app.hxx>
33cdf0e10cSrcweir #include <sfx2/module.hxx>
34cdf0e10cSrcweir #include <sfx2/filedlghelper.hxx>
35cdf0e10cSrcweir #include "com/sun/star/ui/dialogs/TemplateDescription.hpp"
36cdf0e10cSrcweir 
37cdf0e10cSrcweir #define _SVX_TPLNEDEF_CXX
38cdf0e10cSrcweir 
39cdf0e10cSrcweir #include <cuires.hrc>
40cdf0e10cSrcweir #include "tabline.hrc"
41cdf0e10cSrcweir //#include "dlgname.hrc"
42cdf0e10cSrcweir #include "helpid.hrc"
43cdf0e10cSrcweir 
44cdf0e10cSrcweir #include "svx/xattr.hxx"
45cdf0e10cSrcweir #include <svx/xpool.hxx>
46cdf0e10cSrcweir #include <svx/xtable.hxx>
47cdf0e10cSrcweir 
48cdf0e10cSrcweir #include "svx/drawitem.hxx"
49cdf0e10cSrcweir #include "cuitabline.hxx"
50cdf0e10cSrcweir #include "defdlgname.hxx" //CHINA001 #include "dlgname.hxx"
51cdf0e10cSrcweir #include <svx/svxdlg.hxx> //CHINA001
52cdf0e10cSrcweir #include <dialmgr.hxx>
53cdf0e10cSrcweir #include "svx/dlgutil.hxx"
54cdf0e10cSrcweir #include <svx/dialmgr.hxx>
55cdf0e10cSrcweir #include <svx/dialogs.hrc>
56cdf0e10cSrcweir 
57cdf0e10cSrcweir #define DLGWIN this->GetParent()->GetParent()
58cdf0e10cSrcweir 
59cdf0e10cSrcweir #define BITMAP_WIDTH   32
60cdf0e10cSrcweir #define BITMAP_HEIGHT  12
61cdf0e10cSrcweir #define XOUT_WIDTH    150
62cdf0e10cSrcweir 
63cdf0e10cSrcweir /*************************************************************************
64cdf0e10cSrcweir |*
65cdf0e10cSrcweir |*	Dialog zum Definieren von Linienstilen
66cdf0e10cSrcweir |*
67cdf0e10cSrcweir \************************************************************************/
68cdf0e10cSrcweir 
SvxLineDefTabPage(Window * pParent,const SfxItemSet & rInAttrs)69cdf0e10cSrcweir SvxLineDefTabPage::SvxLineDefTabPage
70cdf0e10cSrcweir (
71cdf0e10cSrcweir 	Window* pParent,
72cdf0e10cSrcweir 	const SfxItemSet& rInAttrs
73cdf0e10cSrcweir ) :
74cdf0e10cSrcweir 
75cdf0e10cSrcweir 	SfxTabPage( pParent, CUI_RES( RID_SVXPAGE_LINE_DEF ), rInAttrs ),
76cdf0e10cSrcweir 
77cdf0e10cSrcweir     aFlDefinition   ( this, CUI_RES( FL_DEFINITION ) ),
78cdf0e10cSrcweir     aFTLinestyle    ( this, CUI_RES( FT_LINESTYLE ) ),
79cdf0e10cSrcweir     aLbLineStyles   ( this, CUI_RES( LB_LINESTYLES ) ),
80cdf0e10cSrcweir     aFtType         ( this, CUI_RES( FT_TYPE ) ),
81cdf0e10cSrcweir 	aLbType1		( this, CUI_RES( LB_TYPE_1 ) ),
82cdf0e10cSrcweir 	aLbType2		( this, CUI_RES( LB_TYPE_2 ) ),
83cdf0e10cSrcweir 	aFtNumber		( this, CUI_RES( FT_NUMBER ) ),
84cdf0e10cSrcweir 	aNumFldNumber1	( this, CUI_RES( NUM_FLD_1 ) ),
85cdf0e10cSrcweir 	aNumFldNumber2	( this, CUI_RES( NUM_FLD_2 ) ),
86cdf0e10cSrcweir     aFtLength       ( this, CUI_RES( FT_LENGTH ) ),
87cdf0e10cSrcweir     aMtrLength1     ( this, CUI_RES( MTR_FLD_LENGTH_1 ) ),
88cdf0e10cSrcweir     aMtrLength2     ( this, CUI_RES( MTR_FLD_LENGTH_2 ) ),
89cdf0e10cSrcweir     aFtDistance     ( this, CUI_RES( FT_DISTANCE ) ),
90cdf0e10cSrcweir 	aMtrDistance	( this, CUI_RES( MTR_FLD_DISTANCE ) ),
91cdf0e10cSrcweir     aCbxSynchronize ( this, CUI_RES( CBX_SYNCHRONIZE ) ),
92cdf0e10cSrcweir     aBtnAdd         ( this, CUI_RES( BTN_ADD ) ),
93cdf0e10cSrcweir 	aBtnModify		( this, CUI_RES( BTN_MODIFY ) ),
94cdf0e10cSrcweir 	aBtnDelete		( this, CUI_RES( BTN_DELETE ) ),
95cdf0e10cSrcweir     aBtnLoad        ( this, CUI_RES( BTN_LOAD ) ),
96cdf0e10cSrcweir 	aBtnSave		( this, CUI_RES( BTN_SAVE ) ),
97cdf0e10cSrcweir     aCtlPreview     ( this, CUI_RES( CTL_PREVIEW ) ),
98cdf0e10cSrcweir 
99cdf0e10cSrcweir     rOutAttrs       ( rInAttrs ),
100cdf0e10cSrcweir 
101cdf0e10cSrcweir     pXPool              ( (XOutdevItemPool*) rInAttrs.GetPool() ),
102cdf0e10cSrcweir     aXLStyle            ( XLINE_DASH ),
103cdf0e10cSrcweir     aXWidth             ( XOUT_WIDTH ),
104cdf0e10cSrcweir     aXDash              ( String(), XDash( XDASH_RECT, 3, 7, 2, 40, 15 ) ),
105cdf0e10cSrcweir     aXColor             ( String(), COL_BLACK ),
106cdf0e10cSrcweir     aXLineAttr          ( pXPool ),
107cdf0e10cSrcweir     rXLSet              ( aXLineAttr.GetItemSet() )
108cdf0e10cSrcweir {
109cdf0e10cSrcweir 	aBtnLoad.SetModeImage( Image( CUI_RES( RID_SVXIMG_LOAD_H ) ), BMP_COLOR_HIGHCONTRAST );
110cdf0e10cSrcweir 	aBtnSave.SetModeImage( Image( CUI_RES( RID_SVXIMG_SAVE_H ) ), BMP_COLOR_HIGHCONTRAST );
111cdf0e10cSrcweir 
112cdf0e10cSrcweir 	aLbType1.SetAccessibleName(String(CUI_RES( STR_START_TYPE ) ) );
113cdf0e10cSrcweir 	aLbType2.SetAccessibleName(String(CUI_RES( STR_END_TYPE ) ) );
114cdf0e10cSrcweir 	aNumFldNumber1.SetAccessibleName(String(CUI_RES( STR_START_NUM ) ) );
115cdf0e10cSrcweir 	aNumFldNumber2.SetAccessibleName(String(CUI_RES( STR_END_NUM ) ) );
116cdf0e10cSrcweir 	aMtrLength1.SetAccessibleName(String(CUI_RES( STR_START_LENGTH ) ) );
117cdf0e10cSrcweir 	aMtrLength2.SetAccessibleName(String(CUI_RES( STR_END_LENGTH ) ) );
118cdf0e10cSrcweir 
119cdf0e10cSrcweir 	FreeResource();
120cdf0e10cSrcweir 
121cdf0e10cSrcweir 	// diese Page braucht ExchangeSupport
122cdf0e10cSrcweir 	SetExchangeSupport();
123cdf0e10cSrcweir 
124cdf0e10cSrcweir 	// Metrik einstellen
125cdf0e10cSrcweir 	eFUnit = GetModuleFieldUnit( rInAttrs );
126cdf0e10cSrcweir 
127cdf0e10cSrcweir 	switch ( eFUnit )
128cdf0e10cSrcweir 	{
129cdf0e10cSrcweir 		case FUNIT_M:
130cdf0e10cSrcweir 		case FUNIT_KM:
131cdf0e10cSrcweir 			eFUnit = FUNIT_MM;
132cdf0e10cSrcweir 			break;
133cdf0e10cSrcweir         default: ; //prevent warning
134cdf0e10cSrcweir 	}
135cdf0e10cSrcweir 	SetFieldUnit( aMtrDistance, eFUnit );
136cdf0e10cSrcweir 	SetFieldUnit( aMtrLength1, eFUnit );
137cdf0e10cSrcweir 	SetFieldUnit( aMtrLength2, eFUnit );
138cdf0e10cSrcweir 
139cdf0e10cSrcweir 	// PoolUnit ermitteln
140cdf0e10cSrcweir 	SfxItemPool* pPool = rOutAttrs.GetPool();
141cdf0e10cSrcweir 	DBG_ASSERT( pPool, "Wo ist der Pool?" );
142cdf0e10cSrcweir 	ePoolUnit = pPool->GetMetric( SID_ATTR_LINE_WIDTH );
143cdf0e10cSrcweir 
144cdf0e10cSrcweir 	rXLSet.Put( aXLStyle );
145cdf0e10cSrcweir 	rXLSet.Put( aXWidth );
146cdf0e10cSrcweir 	rXLSet.Put( aXDash );
147cdf0e10cSrcweir 	rXLSet.Put( aXColor );
148cdf0e10cSrcweir 
149cdf0e10cSrcweir 	// #i34740#
150cdf0e10cSrcweir 	aCtlPreview.SetLineAttributes(aXLineAttr.GetItemSet());
151cdf0e10cSrcweir 
152cdf0e10cSrcweir 	aBtnAdd.SetClickHdl( LINK( this, SvxLineDefTabPage, ClickAddHdl_Impl ) );
153cdf0e10cSrcweir 	aBtnModify.SetClickHdl(
154cdf0e10cSrcweir 		LINK( this, SvxLineDefTabPage, ClickModifyHdl_Impl ) );
155cdf0e10cSrcweir 	aBtnDelete.SetClickHdl(
156cdf0e10cSrcweir 		LINK( this, SvxLineDefTabPage, ClickDeleteHdl_Impl ) );
157cdf0e10cSrcweir 	aBtnLoad.SetClickHdl( LINK( this, SvxLineDefTabPage, ClickLoadHdl_Impl ) );
158cdf0e10cSrcweir 	aBtnSave.SetClickHdl( LINK( this, SvxLineDefTabPage, ClickSaveHdl_Impl ) );
159cdf0e10cSrcweir 
160cdf0e10cSrcweir 	aNumFldNumber1.SetModifyHdl(
161cdf0e10cSrcweir 		LINK( this, SvxLineDefTabPage, ChangeNumber1Hdl_Impl ) );
162cdf0e10cSrcweir 	aNumFldNumber2.SetModifyHdl(
163cdf0e10cSrcweir 		LINK( this, SvxLineDefTabPage, ChangeNumber2Hdl_Impl ) );
164cdf0e10cSrcweir 	aLbLineStyles.SetSelectHdl(
165cdf0e10cSrcweir 		LINK( this, SvxLineDefTabPage, SelectLinestyleHdl_Impl ) );
166cdf0e10cSrcweir 
1676202fbb6SArmin Le Grand     // #122042# switch off default adding of 'none' and 'solid' entries
1686202fbb6SArmin Le Grand     // for this ListBox; we want to select only editable/dashed styles
1696202fbb6SArmin Le Grand     aLbLineStyles.setAddStandardFields(false);
1706202fbb6SArmin Le Grand 
171cdf0e10cSrcweir 	// Absolut (in mm) oder Relativ (in %)
172cdf0e10cSrcweir 	aCbxSynchronize.SetClickHdl(
173cdf0e10cSrcweir 		LINK( this, SvxLineDefTabPage, ChangeMetricHdl_Impl ) );
174cdf0e10cSrcweir 
175cdf0e10cSrcweir 	// Wenn sich etwas aendert, muss Preview upgedatet werden werden
176cdf0e10cSrcweir 	Link aLink = LINK( this, SvxLineDefTabPage, SelectTypeHdl_Impl );
177cdf0e10cSrcweir 	aLbType1.SetSelectHdl( aLink );
178cdf0e10cSrcweir 	aLbType2.SetSelectHdl( aLink );
179cdf0e10cSrcweir 	aLink = LINK( this, SvxLineDefTabPage, ChangePreviewHdl_Impl );
180cdf0e10cSrcweir 	aMtrLength1.SetModifyHdl( aLink );
181cdf0e10cSrcweir 	aMtrLength2.SetModifyHdl( aLink );
182cdf0e10cSrcweir 	aMtrDistance.SetModifyHdl( aLink );
183cdf0e10cSrcweir 
184cdf0e10cSrcweir 	aBtnAdd.SetAccessibleRelationMemberOf( &aFlDefinition );
185cdf0e10cSrcweir 	aBtnModify.SetAccessibleRelationMemberOf( &aFlDefinition );
186cdf0e10cSrcweir 	aBtnDelete.SetAccessibleRelationMemberOf( &aFlDefinition );
187cdf0e10cSrcweir 	aBtnLoad.SetAccessibleRelationMemberOf( &aFlDefinition );
188cdf0e10cSrcweir 	aBtnSave.SetAccessibleRelationMemberOf( &aFlDefinition );
189cdf0e10cSrcweir }
190cdf0e10cSrcweir 
191cdf0e10cSrcweir 
192cdf0e10cSrcweir // -----------------------------------------------------------------------
193cdf0e10cSrcweir 
Construct()194cdf0e10cSrcweir void SvxLineDefTabPage::Construct()
195cdf0e10cSrcweir {
1966202fbb6SArmin Le Grand 	// Line style fill; do *not* add default fields here
197c7be74b1SArmin Le Grand 	aLbLineStyles.Fill( maDashList );
198cdf0e10cSrcweir }
199cdf0e10cSrcweir 
200cdf0e10cSrcweir // -----------------------------------------------------------------------
201cdf0e10cSrcweir 
ActivatePage(const SfxItemSet &)202cdf0e10cSrcweir void SvxLineDefTabPage::ActivatePage( const SfxItemSet& )
203cdf0e10cSrcweir {
204cdf0e10cSrcweir 	if( *pDlgType == 0 ) // Flaechen-Dialog
205cdf0e10cSrcweir 	{
206cdf0e10cSrcweir 		// ActivatePage() wird aufgerufen bevor der Dialog PageCreated() erhaelt !!!
207c7be74b1SArmin Le Grand 		if( maDashList.get() )
208cdf0e10cSrcweir 		{
209cdf0e10cSrcweir             if( *pPageType == 1 &&
210cdf0e10cSrcweir 				*pPosDashLb != LISTBOX_ENTRY_NOTFOUND )
211cdf0e10cSrcweir 			{
212cdf0e10cSrcweir 				aLbLineStyles.SelectEntryPos( *pPosDashLb );
213cdf0e10cSrcweir 			}
214cdf0e10cSrcweir 			// Damit evtl. vorhandener Linestyle verworfen wird
215cdf0e10cSrcweir 			SelectLinestyleHdl_Impl( this );
216cdf0e10cSrcweir 
217cdf0e10cSrcweir 			// Ermitteln (evtl. abschneiden) des Namens und in
218cdf0e10cSrcweir 			// der GroupBox darstellen
219cdf0e10cSrcweir 			String			aString( CUI_RES( RID_SVXSTR_TABLE ) ); aString.AppendAscii( RTL_CONSTASCII_STRINGPARAM( ": " ) );
220c7be74b1SArmin Le Grand 			INetURLObject	aURL( maDashList->GetPath() );
221cdf0e10cSrcweir 
222c7be74b1SArmin Le Grand 			aURL.Append( maDashList->GetName() );
223cdf0e10cSrcweir 			DBG_ASSERT( aURL.GetProtocol() != INET_PROT_NOT_VALID, "invalid URL" );
224cdf0e10cSrcweir 
225cdf0e10cSrcweir /*			if ( aURL.getBase().Len() > 18 )
226cdf0e10cSrcweir 			{
227cdf0e10cSrcweir 				aString += aURL.getBase().Copy( 0, 15 );
228cdf0e10cSrcweir 				aString.AppendAscii( RTL_CONSTASCII_STRINGPARAM( "..." ) );
229cdf0e10cSrcweir 			}
230cdf0e10cSrcweir 			else
231cdf0e10cSrcweir 				aString += aURL.getBase();
232cdf0e10cSrcweir 
233cdf0e10cSrcweir 			aFTLinestyle.SetText( aString );
234cdf0e10cSrcweir */
235cdf0e10cSrcweir 			*pPageType = 0; // 2
236cdf0e10cSrcweir 			*pPosDashLb = LISTBOX_ENTRY_NOTFOUND;
237cdf0e10cSrcweir 		}
238cdf0e10cSrcweir 	}
239cdf0e10cSrcweir }
240cdf0e10cSrcweir 
241cdf0e10cSrcweir // -----------------------------------------------------------------------
242cdf0e10cSrcweir 
DeactivatePage(SfxItemSet * _pSet)243cdf0e10cSrcweir int SvxLineDefTabPage::DeactivatePage( SfxItemSet* _pSet )
244cdf0e10cSrcweir {
245cdf0e10cSrcweir 	CheckChanges_Impl();
246cdf0e10cSrcweir 
247cdf0e10cSrcweir     if( _pSet )
248cdf0e10cSrcweir         FillItemSet( *_pSet );
249cdf0e10cSrcweir 
250cdf0e10cSrcweir 	return( LEAVE_PAGE );
251cdf0e10cSrcweir }
252cdf0e10cSrcweir 
253cdf0e10cSrcweir // -----------------------------------------------------------------------
254cdf0e10cSrcweir 
CheckChanges_Impl()255cdf0e10cSrcweir void SvxLineDefTabPage::CheckChanges_Impl()
256cdf0e10cSrcweir {
257cdf0e10cSrcweir 	// wird hier benutzt, um Aenderungen NICHT zu verlieren
258cdf0e10cSrcweir 	//XDashStyle eXDS;
259cdf0e10cSrcweir 
260cdf0e10cSrcweir 	if( aNumFldNumber1.GetText() 	 != aNumFldNumber1.GetSavedValue() ||
261cdf0e10cSrcweir 		aMtrLength1.GetText() 		 != aMtrLength1.GetSavedValue() ||
262cdf0e10cSrcweir 		aLbType1.GetSelectEntryPos() != aLbType1.GetSavedValue() ||
263cdf0e10cSrcweir 		aNumFldNumber2.GetText() 	 != aNumFldNumber2.GetSavedValue() ||
264cdf0e10cSrcweir 		aMtrLength2.GetText() 		 != aMtrLength2.GetSavedValue() ||
265cdf0e10cSrcweir 		aLbType2.GetSelectEntryPos() != aLbType2.GetSavedValue() ||
266cdf0e10cSrcweir 		aMtrDistance.GetText() 		 != aMtrDistance.GetSavedValue() )
267cdf0e10cSrcweir 	{
268cdf0e10cSrcweir 		ResMgr& rMgr = CUI_MGR();
269cdf0e10cSrcweir         Image aWarningBoxImage = WarningBox::GetStandardImage();
270cdf0e10cSrcweir 		SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
271cdf0e10cSrcweir 		DBG_ASSERT(pFact, "Dialogdiet fail!");//CHINA001
272cdf0e10cSrcweir 		AbstractSvxMessDialog* aMessDlg = pFact->CreateSvxMessDialog( DLGWIN, RID_SVXDLG_MESSBOX,
273cdf0e10cSrcweir 													SVX_RESSTR( RID_SVXSTR_LINESTYLE ),
274cdf0e10cSrcweir 													String( ResId( RID_SVXSTR_ASK_CHANGE_LINESTYLE, rMgr ) ),
275cdf0e10cSrcweir 													&aWarningBoxImage );
276cdf0e10cSrcweir 		DBG_ASSERT(aMessDlg, "Dialogdiet fail!");//CHINA001
277cdf0e10cSrcweir 		aMessDlg->SetButtonText( MESS_BTN_1, //CHINA001 aMessDlg.SetButtonText( MESS_BTN_1,
278cdf0e10cSrcweir 								String( ResId( RID_SVXSTR_CHANGE, rMgr ) ) );
279cdf0e10cSrcweir 		aMessDlg->SetButtonText( MESS_BTN_2, //CHINA001 aMessDlg.SetButtonText( MESS_BTN_2,
280cdf0e10cSrcweir 								String( ResId( RID_SVXSTR_ADD, rMgr ) ) );
281cdf0e10cSrcweir 
282cdf0e10cSrcweir 		short nRet = aMessDlg->Execute(); //CHINA001 short nRet = aMessDlg.Execute();
283cdf0e10cSrcweir 
284cdf0e10cSrcweir 		switch( nRet )
285cdf0e10cSrcweir 		{
286cdf0e10cSrcweir 			case RET_BTN_1: // Aendern
287cdf0e10cSrcweir 			{
288cdf0e10cSrcweir 				ClickModifyHdl_Impl( this );
289c7be74b1SArmin Le Grand 				//aXDash = maDashList->Get( nPos )->GetDash();
290cdf0e10cSrcweir 			}
291cdf0e10cSrcweir 			break;
292cdf0e10cSrcweir 
293cdf0e10cSrcweir 			case RET_BTN_2: // Hinzufuegen
294cdf0e10cSrcweir 			{
295cdf0e10cSrcweir 				ClickAddHdl_Impl( this );
296cdf0e10cSrcweir 				//nPos = aLbLineStyles.GetSelectEntryPos();
297c7be74b1SArmin Le Grand 				//aXDash = maDashList->Get( nPos )->GetDash();
298cdf0e10cSrcweir 			}
299cdf0e10cSrcweir 			break;
300cdf0e10cSrcweir 
301cdf0e10cSrcweir 			case RET_CANCEL:
302cdf0e10cSrcweir 			break;
303cdf0e10cSrcweir 			// return( sal_True ); // Abbruch
304cdf0e10cSrcweir 		}
305cdf0e10cSrcweir 		delete aMessDlg; //add by CHINA001
306cdf0e10cSrcweir 	}
307cdf0e10cSrcweir 
308cdf0e10cSrcweir 
309cdf0e10cSrcweir 
310cdf0e10cSrcweir 	sal_uInt16 nPos = aLbLineStyles.GetSelectEntryPos();
311cdf0e10cSrcweir 	if( nPos != LISTBOX_ENTRY_NOTFOUND )
312cdf0e10cSrcweir 	{
313cdf0e10cSrcweir 		*pPosDashLb = nPos;
314cdf0e10cSrcweir 	}
315cdf0e10cSrcweir }
316cdf0e10cSrcweir 
317cdf0e10cSrcweir // -----------------------------------------------------------------------
318cdf0e10cSrcweir 
FillItemSet(SfxItemSet & rAttrs)319cdf0e10cSrcweir sal_Bool SvxLineDefTabPage::FillItemSet( SfxItemSet& rAttrs )
320cdf0e10cSrcweir {
321cdf0e10cSrcweir 	if( *pDlgType == 0 ) // Linien-Dialog
322cdf0e10cSrcweir 	{
323cdf0e10cSrcweir 		if( *pPageType == 2 )
324cdf0e10cSrcweir 		{
325cdf0e10cSrcweir 			//CheckChanges_Impl();
326cdf0e10cSrcweir 
327cdf0e10cSrcweir 			FillDash_Impl();
328cdf0e10cSrcweir 
329cdf0e10cSrcweir 			String aString( aLbLineStyles.GetSelectEntry() );
330cdf0e10cSrcweir 			rAttrs.Put( XLineStyleItem( XLINE_DASH ) );
331cdf0e10cSrcweir 			rAttrs.Put( XLineDashItem( aString, aDash ) );
332cdf0e10cSrcweir 		}
333cdf0e10cSrcweir 	}
334cdf0e10cSrcweir 	return( sal_True );
335cdf0e10cSrcweir }
336cdf0e10cSrcweir 
337cdf0e10cSrcweir // -----------------------------------------------------------------------
338cdf0e10cSrcweir 
Reset(const SfxItemSet & rAttrs)339cdf0e10cSrcweir void SvxLineDefTabPage::Reset( const SfxItemSet& rAttrs )
340cdf0e10cSrcweir {
341cdf0e10cSrcweir 	if( rAttrs.GetItemState( GetWhich( XATTR_LINESTYLE ) ) != SFX_ITEM_DONTCARE )
342cdf0e10cSrcweir 	{
343cdf0e10cSrcweir 		XLineStyle eXLS = (XLineStyle) ( ( const XLineStyleItem& ) rAttrs.Get( GetWhich( XATTR_LINESTYLE ) ) ).GetValue();
344cdf0e10cSrcweir 
345cdf0e10cSrcweir 		switch( eXLS )
346cdf0e10cSrcweir 		{
347cdf0e10cSrcweir 			case XLINE_NONE:
348cdf0e10cSrcweir 			case XLINE_SOLID:
349cdf0e10cSrcweir 				aLbLineStyles.SelectEntryPos( 0 );
350cdf0e10cSrcweir 				break;
351cdf0e10cSrcweir 
352cdf0e10cSrcweir 			case XLINE_DASH:
353cdf0e10cSrcweir 			{
354cdf0e10cSrcweir 				const XLineDashItem& rDashItem = ( const XLineDashItem& ) rAttrs.Get( XATTR_LINEDASH );
355cdf0e10cSrcweir                 aDash = rDashItem.GetDashValue();
356cdf0e10cSrcweir 
357cdf0e10cSrcweir 				aLbLineStyles.SetNoSelection();
358cdf0e10cSrcweir 				aLbLineStyles.SelectEntry( rDashItem.GetName() );
359cdf0e10cSrcweir 			}
360cdf0e10cSrcweir 				break;
361cdf0e10cSrcweir 
362cdf0e10cSrcweir 			default:
363cdf0e10cSrcweir 				break;
364cdf0e10cSrcweir 		}
365cdf0e10cSrcweir 	}
366cdf0e10cSrcweir 	SelectLinestyleHdl_Impl( NULL );
367cdf0e10cSrcweir 
368cdf0e10cSrcweir 	// Status der Buttons ermitteln
369c7be74b1SArmin Le Grand 	if( maDashList.get() && maDashList->Count() )
370cdf0e10cSrcweir 	{
371cdf0e10cSrcweir 		aBtnModify.Enable();
372cdf0e10cSrcweir 		aBtnDelete.Enable();
373cdf0e10cSrcweir 		aBtnSave.Enable();
374cdf0e10cSrcweir 	}
375cdf0e10cSrcweir 	else
376cdf0e10cSrcweir 	{
377cdf0e10cSrcweir 		aBtnModify.Disable();
378cdf0e10cSrcweir 		aBtnDelete.Disable();
379cdf0e10cSrcweir 		aBtnSave.Disable();
380cdf0e10cSrcweir 	}
381cdf0e10cSrcweir }
382cdf0e10cSrcweir 
383cdf0e10cSrcweir // -----------------------------------------------------------------------
384cdf0e10cSrcweir 
Create(Window * pWindow,const SfxItemSet & rOutAttrs)385cdf0e10cSrcweir SfxTabPage* SvxLineDefTabPage::Create( Window* pWindow,
386cdf0e10cSrcweir 				const SfxItemSet& rOutAttrs )
387cdf0e10cSrcweir {
388cdf0e10cSrcweir 	return( new SvxLineDefTabPage( pWindow, rOutAttrs ) );
389cdf0e10cSrcweir }
390cdf0e10cSrcweir 
391cdf0e10cSrcweir //------------------------------------------------------------------------
392cdf0e10cSrcweir 
IMPL_LINK(SvxLineDefTabPage,SelectLinestyleHdl_Impl,void *,p)393cdf0e10cSrcweir IMPL_LINK( SvxLineDefTabPage, SelectLinestyleHdl_Impl, void *, p )
394cdf0e10cSrcweir {
395c7be74b1SArmin Le Grand 	if(maDashList.get() && maDashList->Count())
396cdf0e10cSrcweir 	{
397cdf0e10cSrcweir 		int nTmp = aLbLineStyles.GetSelectEntryPos();
3986202fbb6SArmin Le Grand 
3996202fbb6SArmin Le Grand         if(LISTBOX_ENTRY_NOTFOUND == nTmp)
400cdf0e10cSrcweir 		{
4016202fbb6SArmin Le Grand             OSL_ENSURE(false, "OOps, non-existent LineDash selected (!)");
4026202fbb6SArmin Le Grand             nTmp = 1;
403cdf0e10cSrcweir 		}
4046202fbb6SArmin Le Grand 
405c7be74b1SArmin Le Grand         aDash = maDashList->GetDash( nTmp )->GetDash();
406cdf0e10cSrcweir 
407cdf0e10cSrcweir 		FillDialog_Impl();
408cdf0e10cSrcweir 
409cdf0e10cSrcweir 		rXLSet.Put( XLineDashItem( String(), aDash ) );
410cdf0e10cSrcweir 
411cdf0e10cSrcweir 		// #i34740#
412cdf0e10cSrcweir 		aCtlPreview.SetLineAttributes(aXLineAttr.GetItemSet());
413cdf0e10cSrcweir 
414cdf0e10cSrcweir 		aCtlPreview.Invalidate();
415cdf0e10cSrcweir 
416cdf0e10cSrcweir 		// Wird erst hier gesetzt, um den Style nur dann zu uebernehmen,
417cdf0e10cSrcweir 		// wenn in der ListBox ein Eintrag ausgewaehlt wurde
418cdf0e10cSrcweir 		// Wenn ueber Reset() gerufen wurde ist p == NULL
419cdf0e10cSrcweir 		if( p )
420cdf0e10cSrcweir 			*pPageType = 2;
421cdf0e10cSrcweir 	}
422cdf0e10cSrcweir 	return( 0L );
423cdf0e10cSrcweir }
424cdf0e10cSrcweir 
425cdf0e10cSrcweir //------------------------------------------------------------------------
426cdf0e10cSrcweir 
IMPL_LINK_INLINE_START(SvxLineDefTabPage,ChangePreviewHdl_Impl,void *,EMPTYARG)427cdf0e10cSrcweir IMPL_LINK_INLINE_START( SvxLineDefTabPage, ChangePreviewHdl_Impl, void *, EMPTYARG )
428cdf0e10cSrcweir {
429cdf0e10cSrcweir 	FillDash_Impl();
430cdf0e10cSrcweir 	aCtlPreview.Invalidate();
431cdf0e10cSrcweir 
432cdf0e10cSrcweir 	return( 0L );
433cdf0e10cSrcweir }
IMPL_LINK_INLINE_END(SvxLineDefTabPage,ChangePreviewHdl_Impl,void *,EMPTYARG)434cdf0e10cSrcweir IMPL_LINK_INLINE_END( SvxLineDefTabPage, ChangePreviewHdl_Impl, void *, EMPTYARG )
435cdf0e10cSrcweir 
436cdf0e10cSrcweir //------------------------------------------------------------------------
437cdf0e10cSrcweir 
438cdf0e10cSrcweir IMPL_LINK( SvxLineDefTabPage, ChangeNumber1Hdl_Impl, void *, EMPTYARG )
439cdf0e10cSrcweir {
440cdf0e10cSrcweir 	if( aNumFldNumber1.GetValue() == 0L )
441cdf0e10cSrcweir 	{
442cdf0e10cSrcweir         aNumFldNumber2.SetMin( 1L );
443cdf0e10cSrcweir         aNumFldNumber2.SetFirst( 1L );
444cdf0e10cSrcweir 	}
445cdf0e10cSrcweir 	else
446cdf0e10cSrcweir 	{
447cdf0e10cSrcweir         aNumFldNumber2.SetMin( 0L );
448cdf0e10cSrcweir         aNumFldNumber2.SetFirst( 0L );
449cdf0e10cSrcweir 	}
450cdf0e10cSrcweir 
451cdf0e10cSrcweir 	ChangePreviewHdl_Impl( this );
452cdf0e10cSrcweir 
453cdf0e10cSrcweir 	return( 0L );
454cdf0e10cSrcweir }
455cdf0e10cSrcweir 
456cdf0e10cSrcweir //------------------------------------------------------------------------
457cdf0e10cSrcweir 
IMPL_LINK(SvxLineDefTabPage,ChangeNumber2Hdl_Impl,void *,EMPTYARG)458cdf0e10cSrcweir IMPL_LINK( SvxLineDefTabPage, ChangeNumber2Hdl_Impl, void *, EMPTYARG )
459cdf0e10cSrcweir {
460cdf0e10cSrcweir 	if( aNumFldNumber2.GetValue() == 0L )
461cdf0e10cSrcweir 	{
462cdf0e10cSrcweir         aNumFldNumber1.SetMin( 1L );
463cdf0e10cSrcweir         aNumFldNumber1.SetFirst( 1L );
464cdf0e10cSrcweir 	}
465cdf0e10cSrcweir 	else
466cdf0e10cSrcweir 	{
467cdf0e10cSrcweir         aNumFldNumber1.SetMin( 0L );
468cdf0e10cSrcweir         aNumFldNumber1.SetFirst( 0L );
469cdf0e10cSrcweir 	}
470cdf0e10cSrcweir 
471cdf0e10cSrcweir 	ChangePreviewHdl_Impl( this );
472cdf0e10cSrcweir 
473cdf0e10cSrcweir 	return( 0L );
474cdf0e10cSrcweir }
475cdf0e10cSrcweir 
476cdf0e10cSrcweir 
477cdf0e10cSrcweir //------------------------------------------------------------------------
478cdf0e10cSrcweir 
IMPL_LINK(SvxLineDefTabPage,ChangeMetricHdl_Impl,void *,p)479cdf0e10cSrcweir IMPL_LINK( SvxLineDefTabPage, ChangeMetricHdl_Impl, void *, p )
480cdf0e10cSrcweir {
481cdf0e10cSrcweir 	if( !aCbxSynchronize.IsChecked() && aMtrLength1.GetUnit() != eFUnit )
482cdf0e10cSrcweir 	{
483cdf0e10cSrcweir 		long nTmp1, nTmp2, nTmp3;
484cdf0e10cSrcweir 
485cdf0e10cSrcweir 		// Wurde ueber Control geaendert
486cdf0e10cSrcweir 		if( p )
487cdf0e10cSrcweir 		{
488cdf0e10cSrcweir 			nTmp1 = GetCoreValue( aMtrLength1, ePoolUnit ) * XOUT_WIDTH / 100;
489cdf0e10cSrcweir 			nTmp2 = GetCoreValue( aMtrLength2, ePoolUnit ) * XOUT_WIDTH / 100;
490cdf0e10cSrcweir 			nTmp3 = GetCoreValue( aMtrDistance, ePoolUnit ) * XOUT_WIDTH / 100;
491cdf0e10cSrcweir 		}
492cdf0e10cSrcweir 		else
493cdf0e10cSrcweir 		{
494cdf0e10cSrcweir 			nTmp1 = GetCoreValue( aMtrLength1, ePoolUnit );
495cdf0e10cSrcweir 			nTmp2 = GetCoreValue( aMtrLength2, ePoolUnit );
496cdf0e10cSrcweir 			nTmp3 = GetCoreValue( aMtrDistance, ePoolUnit );
497cdf0e10cSrcweir 		}
498cdf0e10cSrcweir 		aMtrLength1.SetDecimalDigits( 2 );
499cdf0e10cSrcweir 		aMtrLength2.SetDecimalDigits( 2 );
500cdf0e10cSrcweir 		aMtrDistance.SetDecimalDigits( 2 );
501cdf0e10cSrcweir 
502cdf0e10cSrcweir 		// Metrik einstellen
503cdf0e10cSrcweir 		aMtrLength1.SetUnit( eFUnit );
504cdf0e10cSrcweir 		aMtrLength2.SetUnit( eFUnit );
505cdf0e10cSrcweir 		aMtrDistance.SetUnit( eFUnit );
506cdf0e10cSrcweir 
507cdf0e10cSrcweir 		SetMetricValue( aMtrLength1, nTmp1, ePoolUnit );
508cdf0e10cSrcweir 		SetMetricValue( aMtrLength2, nTmp2, ePoolUnit );
509cdf0e10cSrcweir 		SetMetricValue( aMtrDistance, nTmp3, ePoolUnit );
510cdf0e10cSrcweir 	}
511*7ea7a1ccSTsutomu Uchino 	else if( aCbxSynchronize.IsChecked() && aMtrLength1.GetUnit() != FUNIT_PERCENT )
512cdf0e10cSrcweir 	{
513cdf0e10cSrcweir 		long nTmp1, nTmp2, nTmp3;
514cdf0e10cSrcweir 
515cdf0e10cSrcweir 		// Wurde ueber Control geaendert
516cdf0e10cSrcweir 		if( p )
517cdf0e10cSrcweir 		{
518cdf0e10cSrcweir 			nTmp1 = GetCoreValue( aMtrLength1, ePoolUnit ) * 100 / XOUT_WIDTH;
519cdf0e10cSrcweir 			nTmp2 = GetCoreValue( aMtrLength2, ePoolUnit ) * 100 / XOUT_WIDTH;
520cdf0e10cSrcweir 			nTmp3 = GetCoreValue( aMtrDistance, ePoolUnit ) * 100 / XOUT_WIDTH;
521cdf0e10cSrcweir 		}
522cdf0e10cSrcweir 		else
523cdf0e10cSrcweir 		{
524cdf0e10cSrcweir 			nTmp1 = GetCoreValue( aMtrLength1, ePoolUnit );
525cdf0e10cSrcweir 			nTmp2 = GetCoreValue( aMtrLength2, ePoolUnit );
526cdf0e10cSrcweir 			nTmp3 = GetCoreValue( aMtrDistance, ePoolUnit );
527cdf0e10cSrcweir 		}
528cdf0e10cSrcweir 
529cdf0e10cSrcweir 		aMtrLength1.SetDecimalDigits( 0 );
530cdf0e10cSrcweir 		aMtrLength2.SetDecimalDigits( 0 );
531cdf0e10cSrcweir 		aMtrDistance.SetDecimalDigits( 0 );
532cdf0e10cSrcweir 
533*7ea7a1ccSTsutomu Uchino 		aMtrLength1.SetUnit( FUNIT_PERCENT );
534*7ea7a1ccSTsutomu Uchino 		aMtrLength2.SetUnit( FUNIT_PERCENT );
535*7ea7a1ccSTsutomu Uchino 		aMtrDistance.SetUnit( FUNIT_PERCENT );
536cdf0e10cSrcweir 
537cdf0e10cSrcweir 
538cdf0e10cSrcweir 		SetMetricValue( aMtrLength1, nTmp1, ePoolUnit );
539cdf0e10cSrcweir 		SetMetricValue( aMtrLength2, nTmp2, ePoolUnit );
540cdf0e10cSrcweir 		SetMetricValue( aMtrDistance, nTmp3, ePoolUnit );
541cdf0e10cSrcweir 	}
542cdf0e10cSrcweir 	SelectTypeHdl_Impl( NULL );
543cdf0e10cSrcweir 
544cdf0e10cSrcweir 	return( 0L );
545cdf0e10cSrcweir }
546cdf0e10cSrcweir 
547cdf0e10cSrcweir //------------------------------------------------------------------------
548cdf0e10cSrcweir 
IMPL_LINK(SvxLineDefTabPage,SelectTypeHdl_Impl,void *,p)549cdf0e10cSrcweir IMPL_LINK( SvxLineDefTabPage, SelectTypeHdl_Impl, void *, p )
550cdf0e10cSrcweir {
551cdf0e10cSrcweir 	if ( p == &aLbType1 || !p )
552cdf0e10cSrcweir 	{
553cdf0e10cSrcweir 		if ( aLbType1.GetSelectEntryPos() == 0 )
554cdf0e10cSrcweir 		{
555cdf0e10cSrcweir 			aMtrLength1.Disable();
556cdf0e10cSrcweir 			aMtrLength1.SetText( String() );
557cdf0e10cSrcweir 		}
558cdf0e10cSrcweir 		else if ( !aMtrLength1.IsEnabled() )
559cdf0e10cSrcweir 		{
560cdf0e10cSrcweir 			aMtrLength1.Enable();
561cdf0e10cSrcweir 			aMtrLength1.Reformat();
562cdf0e10cSrcweir 		}
563cdf0e10cSrcweir 	}
564cdf0e10cSrcweir 
565cdf0e10cSrcweir 	if ( p == &aLbType2 || !p )
566cdf0e10cSrcweir 	{
567cdf0e10cSrcweir 		if ( aLbType2.GetSelectEntryPos() == 0 )
568cdf0e10cSrcweir 		{
569cdf0e10cSrcweir 			aMtrLength2.Disable();
570cdf0e10cSrcweir 			aMtrLength2.SetText( String() );
571cdf0e10cSrcweir 		}
572cdf0e10cSrcweir 		else if ( !aMtrLength2.IsEnabled() )
573cdf0e10cSrcweir 		{
574cdf0e10cSrcweir 			aMtrLength2.Enable();
575cdf0e10cSrcweir 			aMtrLength2.Reformat();
576cdf0e10cSrcweir 		}
577cdf0e10cSrcweir 	}
578cdf0e10cSrcweir 	ChangePreviewHdl_Impl( p );
579cdf0e10cSrcweir 	return( 0L );
580cdf0e10cSrcweir }
581cdf0e10cSrcweir 
582cdf0e10cSrcweir //------------------------------------------------------------------------
583cdf0e10cSrcweir 
IMPL_LINK(SvxLineDefTabPage,ClickAddHdl_Impl,void *,EMPTYARG)584cdf0e10cSrcweir IMPL_LINK( SvxLineDefTabPage, ClickAddHdl_Impl, void *, EMPTYARG )
585cdf0e10cSrcweir {
586cdf0e10cSrcweir 	ResMgr& rMgr = CUI_MGR();
587cdf0e10cSrcweir 	String aNewName( SVX_RES( RID_SVXSTR_LINESTYLE ) );
588cdf0e10cSrcweir 	String aDesc( ResId( RID_SVXSTR_DESC_LINESTYLE, rMgr ) );
589cdf0e10cSrcweir 	String aName;
590cdf0e10cSrcweir 	XDashEntry* pEntry;
591cdf0e10cSrcweir 
592c7be74b1SArmin Le Grand 	long nCount = maDashList.get() ? maDashList->Count() : 0;
593cdf0e10cSrcweir 	long j = 1;
594cdf0e10cSrcweir 	sal_Bool bDifferent = sal_False;
595cdf0e10cSrcweir 
596cdf0e10cSrcweir 	while ( !bDifferent )
597cdf0e10cSrcweir 	{
598cdf0e10cSrcweir 		aName = aNewName;
599cdf0e10cSrcweir 		aName += sal_Unicode(' ');
600cdf0e10cSrcweir 		aName += UniString::CreateFromInt32( j++ );
601cdf0e10cSrcweir 		bDifferent = sal_True;
602cdf0e10cSrcweir 
603cdf0e10cSrcweir 		for ( long i = 0; i < nCount && bDifferent; i++ )
604c7be74b1SArmin Le Grand             if ( aName == maDashList->GetDash( i )->GetName() )
605cdf0e10cSrcweir 				bDifferent = sal_False;
606cdf0e10cSrcweir 	}
607cdf0e10cSrcweir 
608cdf0e10cSrcweir 	SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
609cdf0e10cSrcweir 	DBG_ASSERT(pFact, "Dialogdiet fail!");//CHINA001
610cdf0e10cSrcweir 	AbstractSvxNameDialog* pDlg = pFact->CreateSvxNameDialog( DLGWIN, aName, aDesc );
611cdf0e10cSrcweir 	DBG_ASSERT(pDlg, "Dialogdiet fail!");//CHINA001
612cdf0e10cSrcweir 	sal_Bool bLoop = sal_True;
613cdf0e10cSrcweir 
614cdf0e10cSrcweir 	while ( bLoop && pDlg->Execute() == RET_OK )
615cdf0e10cSrcweir 	{
616cdf0e10cSrcweir 		pDlg->GetName( aName );
617cdf0e10cSrcweir 		bDifferent = sal_True;
618cdf0e10cSrcweir 
619cdf0e10cSrcweir 		for( long i = 0; i < nCount && bDifferent; i++ )
620cdf0e10cSrcweir 		{
621c7be74b1SArmin Le Grand             if( aName == maDashList->GetDash( i )->GetName() )
622cdf0e10cSrcweir 				bDifferent = sal_False;
623cdf0e10cSrcweir 		}
624cdf0e10cSrcweir 
625cdf0e10cSrcweir 		if( bDifferent )
626cdf0e10cSrcweir 		{
627cdf0e10cSrcweir 			bLoop = sal_False;
628cdf0e10cSrcweir 			FillDash_Impl();
629cdf0e10cSrcweir 
630cdf0e10cSrcweir 			pEntry = new XDashEntry( aDash, aName );
631cdf0e10cSrcweir 
632c7be74b1SArmin Le Grand             long nDashCount = maDashList.get() ? maDashList->Count() : 0;
633c7be74b1SArmin Le Grand             maDashList->Insert( pEntry, nDashCount );
6343e407bd8SArmin Le Grand 			aLbLineStyles.Append( *pEntry, maDashList->GetUiBitmap( nDashCount ) );
635cdf0e10cSrcweir 
636cdf0e10cSrcweir 			aLbLineStyles.SelectEntryPos( aLbLineStyles.GetEntryCount() - 1 );
637cdf0e10cSrcweir 
638cdf0e10cSrcweir 			// Flag fuer modifiziert setzen
639cdf0e10cSrcweir 			*pnDashListState |= CT_MODIFIED;
640cdf0e10cSrcweir 
641cdf0e10cSrcweir 			*pPageType = 2;
642cdf0e10cSrcweir 
643cdf0e10cSrcweir 			// Werte sichern fuer Changes-Erkennung ( -> Methode )
644cdf0e10cSrcweir 			aNumFldNumber1.SaveValue();
645cdf0e10cSrcweir 			aMtrLength1.SaveValue();
646cdf0e10cSrcweir 			aLbType1.SaveValue();
647cdf0e10cSrcweir 			aNumFldNumber2.SaveValue();
648cdf0e10cSrcweir 			aMtrLength2.SaveValue();
649cdf0e10cSrcweir 			aLbType2.SaveValue();
650cdf0e10cSrcweir 			aMtrDistance.SaveValue();
651cdf0e10cSrcweir 		}
652cdf0e10cSrcweir 		else
653cdf0e10cSrcweir 		{
654cdf0e10cSrcweir 			WarningBox aBox( DLGWIN, WinBits( WB_OK ),String( ResId( RID_SVXSTR_WARN_NAME_DUPLICATE, rMgr ) ) );
655cdf0e10cSrcweir 			aBox.SetHelpId( HID_WARN_NAME_DUPLICATE );
656cdf0e10cSrcweir 			aBox.Execute();
657cdf0e10cSrcweir 		}
658cdf0e10cSrcweir 	}
659cdf0e10cSrcweir 	delete( pDlg );
660cdf0e10cSrcweir 
661cdf0e10cSrcweir 	// Status der Buttons ermitteln
662c7be74b1SArmin Le Grand 	if ( maDashList.get() && maDashList->Count() )
663cdf0e10cSrcweir 	{
664cdf0e10cSrcweir 		aBtnModify.Enable();
665cdf0e10cSrcweir 		aBtnDelete.Enable();
666cdf0e10cSrcweir 		aBtnSave.Enable();
667cdf0e10cSrcweir 	}
668cdf0e10cSrcweir 	return( 0L );
669cdf0e10cSrcweir }
670cdf0e10cSrcweir 
671cdf0e10cSrcweir //------------------------------------------------------------------------
672cdf0e10cSrcweir 
IMPL_LINK(SvxLineDefTabPage,ClickModifyHdl_Impl,void *,EMPTYARG)673cdf0e10cSrcweir IMPL_LINK( SvxLineDefTabPage, ClickModifyHdl_Impl, void *, EMPTYARG )
674cdf0e10cSrcweir {
675cdf0e10cSrcweir 	sal_uInt16 nPos = aLbLineStyles.GetSelectEntryPos();
676cdf0e10cSrcweir 
677cdf0e10cSrcweir 	if( nPos != LISTBOX_ENTRY_NOTFOUND )
678cdf0e10cSrcweir 	{
679cdf0e10cSrcweir 		ResMgr& rMgr = CUI_MGR();
680cdf0e10cSrcweir 		String aNewName( SVX_RES( RID_SVXSTR_LINESTYLE ) );
681cdf0e10cSrcweir 		String aDesc( ResId( RID_SVXSTR_DESC_LINESTYLE, rMgr ) );
682c7be74b1SArmin Le Grand         String aName( maDashList->GetDash( nPos )->GetName() );
683cdf0e10cSrcweir 		String aOldName = aName;
684cdf0e10cSrcweir 
685cdf0e10cSrcweir 		SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
686cdf0e10cSrcweir 		DBG_ASSERT(pFact, "Dialogdiet fail!");//CHINA001
687cdf0e10cSrcweir 		AbstractSvxNameDialog* pDlg = pFact->CreateSvxNameDialog( DLGWIN, aName, aDesc );
688cdf0e10cSrcweir 		DBG_ASSERT(pDlg, "Dialogdiet fail!");//CHINA001
689cdf0e10cSrcweir 
690c7be74b1SArmin Le Grand 		long nCount = maDashList.get() ? maDashList->Count() : 0;
691cdf0e10cSrcweir 		sal_Bool bDifferent = sal_False;
692cdf0e10cSrcweir 		sal_Bool bLoop = sal_True;
693cdf0e10cSrcweir 
694cdf0e10cSrcweir 		while ( bLoop && pDlg->Execute() == RET_OK )
695cdf0e10cSrcweir 		{
696cdf0e10cSrcweir 			pDlg->GetName( aName );
697cdf0e10cSrcweir 			bDifferent = sal_True;
698cdf0e10cSrcweir 
699cdf0e10cSrcweir 			for( long i = 0; i < nCount && bDifferent; i++ )
700cdf0e10cSrcweir 			{
701c7be74b1SArmin Le Grand                 if( aName == maDashList->GetDash( i )->GetName() &&
702cdf0e10cSrcweir 					aName != aOldName )
703cdf0e10cSrcweir 					bDifferent = sal_False;
704cdf0e10cSrcweir 			}
705cdf0e10cSrcweir 
706cdf0e10cSrcweir 			if ( bDifferent )
707cdf0e10cSrcweir 			{
708cdf0e10cSrcweir 				bLoop = sal_False;
709cdf0e10cSrcweir 				FillDash_Impl();
710cdf0e10cSrcweir 
711cdf0e10cSrcweir 				XDashEntry* pEntry = new XDashEntry( aDash, aName );
712cdf0e10cSrcweir 
713c7be74b1SArmin Le Grand 				delete maDashList->Replace( pEntry, nPos );
7143e407bd8SArmin Le Grand 				aLbLineStyles.Modify( *pEntry, nPos, maDashList->GetUiBitmap( nPos ) );
715cdf0e10cSrcweir 
716cdf0e10cSrcweir 				aLbLineStyles.SelectEntryPos( nPos );
717cdf0e10cSrcweir 
718cdf0e10cSrcweir 				// Flag fuer modifiziert setzen
719cdf0e10cSrcweir 				*pnDashListState |= CT_MODIFIED;
720cdf0e10cSrcweir 
721cdf0e10cSrcweir 				*pPageType = 2;
722cdf0e10cSrcweir 
723cdf0e10cSrcweir 				// Werte sichern fuer Changes-Erkennung ( -> Methode )
724cdf0e10cSrcweir 				aNumFldNumber1.SaveValue();
725cdf0e10cSrcweir 				aMtrLength1.SaveValue();
726cdf0e10cSrcweir 				aLbType1.SaveValue();
727cdf0e10cSrcweir 				aNumFldNumber2.SaveValue();
728cdf0e10cSrcweir 				aMtrLength2.SaveValue();
729cdf0e10cSrcweir 				aLbType2.SaveValue();
730cdf0e10cSrcweir 				aMtrDistance.SaveValue();
731cdf0e10cSrcweir 			}
732cdf0e10cSrcweir 			else
733cdf0e10cSrcweir 			{
734cdf0e10cSrcweir 				WarningBox aBox( DLGWIN, WinBits( WB_OK ), String( ResId( RID_SVXSTR_WARN_NAME_DUPLICATE, rMgr ) ) );
735cdf0e10cSrcweir 				aBox.SetHelpId( HID_WARN_NAME_DUPLICATE );
736cdf0e10cSrcweir 				aBox.Execute();
737cdf0e10cSrcweir 			}
738cdf0e10cSrcweir 		}
739cdf0e10cSrcweir 		delete( pDlg );
740cdf0e10cSrcweir 	}
741cdf0e10cSrcweir 	return( 0L );
742cdf0e10cSrcweir }
743cdf0e10cSrcweir 
744cdf0e10cSrcweir //------------------------------------------------------------------------
745cdf0e10cSrcweir 
IMPL_LINK(SvxLineDefTabPage,ClickDeleteHdl_Impl,void *,EMPTYARG)746cdf0e10cSrcweir IMPL_LINK( SvxLineDefTabPage, ClickDeleteHdl_Impl, void *, EMPTYARG )
747cdf0e10cSrcweir {
748cdf0e10cSrcweir 	sal_uInt16 nPos = aLbLineStyles.GetSelectEntryPos();
749cdf0e10cSrcweir 
750cdf0e10cSrcweir 	if ( nPos != LISTBOX_ENTRY_NOTFOUND )
751cdf0e10cSrcweir 	{
752cdf0e10cSrcweir 		QueryBox aQueryBox( DLGWIN, WinBits( WB_YES_NO | WB_DEF_NO ),
753cdf0e10cSrcweir 			String( CUI_RES( RID_SVXSTR_ASK_DEL_LINESTYLE ) ) );
754cdf0e10cSrcweir 
755cdf0e10cSrcweir 		if ( aQueryBox.Execute() == RET_YES )
756cdf0e10cSrcweir 		{
757c7be74b1SArmin Le Grand 			delete maDashList->Remove( nPos );
758cdf0e10cSrcweir 			aLbLineStyles.RemoveEntry( nPos );
759cdf0e10cSrcweir 			aLbLineStyles.SelectEntryPos( 0 );
760cdf0e10cSrcweir 
761cdf0e10cSrcweir 			SelectLinestyleHdl_Impl( this );
762cdf0e10cSrcweir 			*pPageType = 0; // Style soll nicht uebernommen werden
763cdf0e10cSrcweir 
764cdf0e10cSrcweir 			// Flag fuer modifiziert setzen
765cdf0e10cSrcweir 			*pnDashListState |= CT_MODIFIED;
766cdf0e10cSrcweir 
767cdf0e10cSrcweir 			ChangePreviewHdl_Impl( this );
768cdf0e10cSrcweir 		}
769cdf0e10cSrcweir 	}
770cdf0e10cSrcweir 
771cdf0e10cSrcweir 	// Status der Buttons ermitteln
772c7be74b1SArmin Le Grand 	if ( !maDashList.get() || !maDashList->Count() )
773cdf0e10cSrcweir 	{
774cdf0e10cSrcweir 		aBtnModify.Disable();
775cdf0e10cSrcweir 		aBtnDelete.Disable();
776cdf0e10cSrcweir 		aBtnSave.Disable();
777cdf0e10cSrcweir 	}
778cdf0e10cSrcweir 	return( 0L );
779cdf0e10cSrcweir }
780cdf0e10cSrcweir 
781cdf0e10cSrcweir // -----------------------------------------------------------------------
782cdf0e10cSrcweir 
IMPL_LINK(SvxLineDefTabPage,ClickLoadHdl_Impl,void *,EMPTYARG)783cdf0e10cSrcweir IMPL_LINK( SvxLineDefTabPage, ClickLoadHdl_Impl, void *, EMPTYARG )
784cdf0e10cSrcweir {
785cdf0e10cSrcweir 	ResMgr& rMgr = CUI_MGR();
786cdf0e10cSrcweir 	sal_uInt16 nReturn = RET_YES;
787cdf0e10cSrcweir 
788cdf0e10cSrcweir 	if ( *pnDashListState & CT_MODIFIED )
789cdf0e10cSrcweir 	{
790cdf0e10cSrcweir 		nReturn = WarningBox( DLGWIN, WinBits( WB_YES_NO_CANCEL ),
791cdf0e10cSrcweir 			String( ResId( RID_SVXSTR_WARN_TABLE_OVERWRITE, rMgr ) ) ).Execute();
792cdf0e10cSrcweir 
793cdf0e10cSrcweir 		if ( nReturn == RET_YES )
794c7be74b1SArmin Le Grand 			maDashList->Save();
795cdf0e10cSrcweir 	}
796cdf0e10cSrcweir 
797cdf0e10cSrcweir 	if ( nReturn != RET_CANCEL )
798cdf0e10cSrcweir 	{
799cdf0e10cSrcweir     	::sfx2::FileDialogHelper aDlg(
800cdf0e10cSrcweir             com::sun::star::ui::dialogs::TemplateDescription::FILEOPEN_SIMPLE,
801cdf0e10cSrcweir             0 );
802cdf0e10cSrcweir 		String aStrFilterType( RTL_CONSTASCII_USTRINGPARAM( "*.sod" ) );
803cdf0e10cSrcweir 		aDlg.AddFilter( aStrFilterType, aStrFilterType );
804cdf0e10cSrcweir 		INetURLObject aFile( SvtPathOptions().GetPalettePath() );
805cdf0e10cSrcweir 		aDlg.SetDisplayDirectory( aFile.GetMainURL( INetURLObject::NO_DECODE ) );
806cdf0e10cSrcweir 
807cdf0e10cSrcweir 		if( aDlg.Execute() == ERRCODE_NONE )
808cdf0e10cSrcweir 		{
809cdf0e10cSrcweir 			INetURLObject aURL( aDlg.GetPath() );
810cdf0e10cSrcweir 			INetURLObject aPathURL( aURL );
811cdf0e10cSrcweir 
812cdf0e10cSrcweir 			aPathURL.removeSegment();
813cdf0e10cSrcweir 			aPathURL.removeFinalSlash();
814cdf0e10cSrcweir 
815cdf0e10cSrcweir 			// Liste speichern
816c7be74b1SArmin Le Grand 			XDashListSharedPtr aDshLst(XPropertyListFactory::CreateSharedXDashList(aPathURL.GetMainURL(INetURLObject::NO_DECODE)));
817c7be74b1SArmin Le Grand 			aDshLst->SetName( aURL.getName() );
818cdf0e10cSrcweir 
819c7be74b1SArmin Le Grand 			if( aDshLst->Load() )
820cdf0e10cSrcweir 			{
821c7be74b1SArmin Le Grand 				if( aDshLst.get() )
822cdf0e10cSrcweir 				{
823c7be74b1SArmin Le Grand 					maDashList = aDshLst;
824c7be74b1SArmin Le Grand 					( (SvxLineTabDialog*) DLGWIN )->SetNewDashList( maDashList );
825cdf0e10cSrcweir 
826cdf0e10cSrcweir 					aLbLineStyles.Clear();
827c7be74b1SArmin Le Grand 					aLbLineStyles.Fill( maDashList );
828cdf0e10cSrcweir 					Reset( rOutAttrs );
829cdf0e10cSrcweir 
830c7be74b1SArmin Le Grand 					maDashList->SetName( aURL.getName() );
831cdf0e10cSrcweir 
832cdf0e10cSrcweir /*					// Ermitteln (evtl. abschneiden) des Namens und in
833cdf0e10cSrcweir 					// der GroupBox darstellen
834cdf0e10cSrcweir 					String aString( ResId( RID_SVXSTR_TABLE, rMgr ) );
835cdf0e10cSrcweir 					aString.AppendAscii( RTL_CONSTASCII_STRINGPARAM( ": " ) );
836cdf0e10cSrcweir 
837cdf0e10cSrcweir 					if ( aURL.getBase().Len() > 18 )
838cdf0e10cSrcweir 					{
839cdf0e10cSrcweir 						aString += aURL.getBase().Copy( 0, 15 );
840cdf0e10cSrcweir 						aString.AppendAscii( RTL_CONSTASCII_STRINGPARAM( "..." ) );
841cdf0e10cSrcweir 					}
842cdf0e10cSrcweir 					else
843cdf0e10cSrcweir 						aString += aURL.getBase();
844cdf0e10cSrcweir 
845cdf0e10cSrcweir 					aGrpLinestyles.SetText( aString );
846cdf0e10cSrcweir */
847cdf0e10cSrcweir 					// Flag fuer gewechselt setzen
848cdf0e10cSrcweir 					*pnDashListState |= CT_CHANGED;
849cdf0e10cSrcweir 					// Flag fuer modifiziert entfernen
850cdf0e10cSrcweir 					*pnDashListState &= ~CT_MODIFIED;
851cdf0e10cSrcweir 				}
852cdf0e10cSrcweir 			}
853cdf0e10cSrcweir 			else
854cdf0e10cSrcweir 				//aIStream.Close();
855cdf0e10cSrcweir 				ErrorBox( DLGWIN, WinBits( WB_OK ),
856cdf0e10cSrcweir 					String( ResId( RID_SVXSTR_READ_DATA_ERROR, rMgr ) ) ).Execute();
857cdf0e10cSrcweir 		}
858cdf0e10cSrcweir 	}
859cdf0e10cSrcweir 
860cdf0e10cSrcweir 	// Status der Buttons ermitteln
861c7be74b1SArmin Le Grand 	if ( maDashList.get() && maDashList->Count() )
862cdf0e10cSrcweir 	{
863cdf0e10cSrcweir 		aBtnModify.Enable();
864cdf0e10cSrcweir 		aBtnDelete.Enable();
865cdf0e10cSrcweir 		aBtnSave.Enable();
866cdf0e10cSrcweir 	}
867cdf0e10cSrcweir 	else
868cdf0e10cSrcweir 	{
869cdf0e10cSrcweir 		aBtnModify.Disable();
870cdf0e10cSrcweir 		aBtnDelete.Disable();
871cdf0e10cSrcweir 		aBtnSave.Disable();
872cdf0e10cSrcweir 	}
873cdf0e10cSrcweir 	return( 0L );
874cdf0e10cSrcweir }
875cdf0e10cSrcweir 
876cdf0e10cSrcweir // -----------------------------------------------------------------------
877cdf0e10cSrcweir 
IMPL_LINK(SvxLineDefTabPage,ClickSaveHdl_Impl,void *,EMPTYARG)878cdf0e10cSrcweir IMPL_LINK( SvxLineDefTabPage, ClickSaveHdl_Impl, void *, EMPTYARG )
879cdf0e10cSrcweir {
880cdf0e10cSrcweir    	::sfx2::FileDialogHelper aDlg(
881cdf0e10cSrcweir         com::sun::star::ui::dialogs::TemplateDescription::FILESAVE_SIMPLE, 0 );
882cdf0e10cSrcweir 	String aStrFilterType( RTL_CONSTASCII_USTRINGPARAM( "*.sod" ) );
883cdf0e10cSrcweir 	aDlg.AddFilter( aStrFilterType, aStrFilterType );
884cdf0e10cSrcweir 
885cdf0e10cSrcweir 	INetURLObject aFile( SvtPathOptions().GetPalettePath() );
886cdf0e10cSrcweir 	DBG_ASSERT( aFile.GetProtocol() != INET_PROT_NOT_VALID, "invalid URL" );
887cdf0e10cSrcweir 
888c7be74b1SArmin Le Grand 	if( maDashList->GetName().Len() )
889cdf0e10cSrcweir 	{
890c7be74b1SArmin Le Grand 		aFile.Append( maDashList->GetName() );
891cdf0e10cSrcweir 
892cdf0e10cSrcweir 		if( !aFile.getExtension().getLength() )
893cdf0e10cSrcweir 			aFile.SetExtension( UniString::CreateFromAscii( RTL_CONSTASCII_STRINGPARAM( "sod" ) ) );
894cdf0e10cSrcweir 	}
895cdf0e10cSrcweir 
896cdf0e10cSrcweir 	aDlg.SetDisplayDirectory( aFile.GetMainURL( INetURLObject::NO_DECODE ) );
897cdf0e10cSrcweir 	if ( aDlg.Execute() == ERRCODE_NONE )
898cdf0e10cSrcweir 	{
899cdf0e10cSrcweir 		INetURLObject aURL( aDlg.GetPath() );
900cdf0e10cSrcweir 		INetURLObject aPathURL( aURL );
901cdf0e10cSrcweir 
902cdf0e10cSrcweir 		aPathURL.removeSegment();
903cdf0e10cSrcweir 		aPathURL.removeFinalSlash();
904cdf0e10cSrcweir 
905c7be74b1SArmin Le Grand 		maDashList->SetName( aURL.getName() );
906c7be74b1SArmin Le Grand 		maDashList->SetPath( aPathURL.GetMainURL( INetURLObject::NO_DECODE ) );
907cdf0e10cSrcweir 
908c7be74b1SArmin Le Grand 		if( maDashList->Save() )
909cdf0e10cSrcweir 		{
910cdf0e10cSrcweir /*			// Ermitteln (evtl. abschneiden) des Namens und in
911cdf0e10cSrcweir 			// der GroupBox darstellen
912cdf0e10cSrcweir 			String aString( CUI_RES( RID_SVXSTR_TABLE ) );
913cdf0e10cSrcweir 			aString.AppendAscii( RTL_CONSTASCII_STRINGPARAM( ": " ) );
914cdf0e10cSrcweir 
915cdf0e10cSrcweir 			if ( aURL.getBase().Len() > 18 )
916cdf0e10cSrcweir 			{
917cdf0e10cSrcweir 				aString += aURL.getBase().Copy( 0, 15 );
918cdf0e10cSrcweir 				aString.AppendAscii( RTL_CONSTASCII_STRINGPARAM( "..." ) );
919cdf0e10cSrcweir 			}
920cdf0e10cSrcweir 			else
921cdf0e10cSrcweir 				aString += aURL.getBase();
922cdf0e10cSrcweir 
923cdf0e10cSrcweir 			aGrpLinestyles.SetText( aString );
924cdf0e10cSrcweir */
925cdf0e10cSrcweir 			// Flag fuer gespeichert setzen
926cdf0e10cSrcweir 			*pnDashListState |= CT_SAVED;
927cdf0e10cSrcweir 			// Flag fuer modifiziert entfernen
928cdf0e10cSrcweir 			*pnDashListState &= ~CT_MODIFIED;
929cdf0e10cSrcweir 		}
930cdf0e10cSrcweir 		else
931cdf0e10cSrcweir 		{
932cdf0e10cSrcweir 			ErrorBox( DLGWIN, WinBits( WB_OK ),
933cdf0e10cSrcweir 				String( CUI_RES( RID_SVXSTR_WRITE_DATA_ERROR ) ) ).Execute();
934cdf0e10cSrcweir 		}
935cdf0e10cSrcweir 	}
936cdf0e10cSrcweir 
937cdf0e10cSrcweir 	return( 0L );
938cdf0e10cSrcweir }
939cdf0e10cSrcweir 
940cdf0e10cSrcweir //------------------------------------------------------------------------
941cdf0e10cSrcweir 
FillDash_Impl()942cdf0e10cSrcweir void SvxLineDefTabPage::FillDash_Impl()
943cdf0e10cSrcweir {
944cdf0e10cSrcweir 	XDashStyle eXDS;
945cdf0e10cSrcweir 
946cdf0e10cSrcweir /*	Alle Stile werden z.Z. nicht benutzt
947cdf0e10cSrcweir 	if( aRbtEnds1.IsChecked() )
948cdf0e10cSrcweir 		eXDS = XDASH_ROUND;
949cdf0e10cSrcweir 	else if( aRbtEnds2.IsChecked() )
950cdf0e10cSrcweir 		eXDS = XDASH_RECT;
951cdf0e10cSrcweir 	else
952cdf0e10cSrcweir 		eXDS = XDASH_RECT;
953cdf0e10cSrcweir */
954cdf0e10cSrcweir 	if( aCbxSynchronize.IsChecked() )
955cdf0e10cSrcweir 		eXDS = XDASH_RECTRELATIVE;
956cdf0e10cSrcweir 	else
957cdf0e10cSrcweir 		eXDS = XDASH_RECT;
958cdf0e10cSrcweir 
959cdf0e10cSrcweir 	aDash.SetDashStyle( eXDS );
960cdf0e10cSrcweir 	aDash.SetDots( (sal_uInt8) aNumFldNumber1.GetValue() );
961cdf0e10cSrcweir 	aDash.SetDotLen( aLbType1.GetSelectEntryPos() == 0 ? 0 :
962cdf0e10cSrcweir 								GetCoreValue( aMtrLength1, ePoolUnit ) );
963cdf0e10cSrcweir 	aDash.SetDashes( (sal_uInt8) aNumFldNumber2.GetValue() );
964cdf0e10cSrcweir 	aDash.SetDashLen( aLbType2.GetSelectEntryPos() == 0 ? 0 :
965cdf0e10cSrcweir 								GetCoreValue( aMtrLength2, ePoolUnit ) );
966cdf0e10cSrcweir 	aDash.SetDistance( GetCoreValue( aMtrDistance, ePoolUnit ) );
967cdf0e10cSrcweir 
968cdf0e10cSrcweir 	rXLSet.Put( XLineDashItem( String(), aDash ) );
969cdf0e10cSrcweir 
970cdf0e10cSrcweir 	// #i34740#
971cdf0e10cSrcweir 	aCtlPreview.SetLineAttributes(aXLineAttr.GetItemSet());
972cdf0e10cSrcweir }
973cdf0e10cSrcweir 
974cdf0e10cSrcweir //------------------------------------------------------------------------
975cdf0e10cSrcweir 
FillDialog_Impl()976cdf0e10cSrcweir void SvxLineDefTabPage::FillDialog_Impl()
977cdf0e10cSrcweir {
978cdf0e10cSrcweir 	XDashStyle eXDS = aDash.GetDashStyle(); // XDASH_RECT, XDASH_ROUND
979cdf0e10cSrcweir 	if( eXDS == XDASH_RECTRELATIVE )
980cdf0e10cSrcweir 		aCbxSynchronize.Check();
981cdf0e10cSrcweir 	else
982cdf0e10cSrcweir 		aCbxSynchronize.Check( sal_False );
983cdf0e10cSrcweir 
984cdf0e10cSrcweir 	aNumFldNumber1.SetValue( aDash.GetDots() );
985cdf0e10cSrcweir 	//aMtrLength1.SetValue( aDash.GetDotLen() );
986cdf0e10cSrcweir 	SetMetricValue( aMtrLength1, aDash.GetDotLen(), ePoolUnit );
987cdf0e10cSrcweir 	aLbType1.SelectEntryPos( aDash.GetDotLen() == 0 ? 0 : 1 );
988cdf0e10cSrcweir 	aNumFldNumber2.SetValue( aDash.GetDashes() );
989cdf0e10cSrcweir 	//aMtrLength2.SetValue( aDash.GetDashLen() );
990cdf0e10cSrcweir 	SetMetricValue( aMtrLength2, aDash.GetDashLen(), ePoolUnit );
991cdf0e10cSrcweir 	aLbType2.SelectEntryPos( aDash.GetDashLen() == 0 ? 0 : 1 );
992cdf0e10cSrcweir 	//aMtrDistance.SetValue( aDash.GetDistance() );
993cdf0e10cSrcweir 	SetMetricValue( aMtrDistance, aDash.GetDistance(), ePoolUnit );
994cdf0e10cSrcweir 
995cdf0e10cSrcweir 	ChangeMetricHdl_Impl( NULL );
996cdf0e10cSrcweir 
997cdf0e10cSrcweir 	// Werte sichern fuer Changes-Erkennung ( -> Methode )
998cdf0e10cSrcweir 	aNumFldNumber1.SaveValue();
999cdf0e10cSrcweir 	aMtrLength1.SaveValue();
1000cdf0e10cSrcweir 	aLbType1.SaveValue();
1001cdf0e10cSrcweir 	aNumFldNumber2.SaveValue();
1002cdf0e10cSrcweir 	aMtrLength2.SaveValue();
1003cdf0e10cSrcweir 	aLbType2.SaveValue();
1004cdf0e10cSrcweir 	aMtrDistance.SaveValue();
1005cdf0e10cSrcweir }
1006cdf0e10cSrcweir 
1007cdf0e10cSrcweir 
DataChanged(const DataChangedEvent & rDCEvt)1008cdf0e10cSrcweir void SvxLineDefTabPage::DataChanged( const DataChangedEvent& rDCEvt )
1009cdf0e10cSrcweir {
1010cdf0e10cSrcweir 	SfxTabPage::DataChanged( rDCEvt );
1011cdf0e10cSrcweir 
1012cdf0e10cSrcweir 	if ( (rDCEvt.GetType() == DATACHANGED_SETTINGS) && (rDCEvt.GetFlags() & SETTINGS_STYLE) )
1013cdf0e10cSrcweir 	{
1014cdf0e10cSrcweir 		sal_uInt16 nOldSelect = aLbLineStyles.GetSelectEntryPos();
1015cdf0e10cSrcweir 		aLbLineStyles.Clear();
1016c7be74b1SArmin Le Grand 		aLbLineStyles.Fill( maDashList );
1017cdf0e10cSrcweir 		aLbLineStyles.SelectEntryPos( nOldSelect );
1018cdf0e10cSrcweir 	}
1019cdf0e10cSrcweir }
1020cdf0e10cSrcweir 
1021