xref: /aoo4110/main/sw/source/ui/index/swuiidxmrk.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 #include "swuiidxmrk.hxx"
31*b1cdbd2cSJim Jagielski #include <hintids.hxx>
32*b1cdbd2cSJim Jagielski #include <helpid.h>
33*b1cdbd2cSJim Jagielski #define _SVSTDARR_STRINGSSORT
34*b1cdbd2cSJim Jagielski #include <svl/svstdarr.hxx>
35*b1cdbd2cSJim Jagielski #include <comphelper/processfactory.hxx>
36*b1cdbd2cSJim Jagielski #include <com/sun/star/lang/XMultiServiceFactory.hpp>
37*b1cdbd2cSJim Jagielski #include <com/sun/star/beans/PropertyValue.hpp>
38*b1cdbd2cSJim Jagielski #include <com/sun/star/beans/XPropertySet.hpp>
39*b1cdbd2cSJim Jagielski #include <com/sun/star/util/SearchOptions.hpp>
40*b1cdbd2cSJim Jagielski #include <com/sun/star/util/SearchFlags.hpp>
41*b1cdbd2cSJim Jagielski #include <com/sun/star/i18n/TransliterationModules.hpp>
42*b1cdbd2cSJim Jagielski #include <svl/stritem.hxx>
43*b1cdbd2cSJim Jagielski #include <vcl/msgbox.hxx>
44*b1cdbd2cSJim Jagielski #include <sfx2/dispatch.hxx>
45*b1cdbd2cSJim Jagielski #include <svl/eitem.hxx>
46*b1cdbd2cSJim Jagielski #include <svtools/txtcmp.hxx>
47*b1cdbd2cSJim Jagielski #include <editeng/scripttypeitem.hxx>
48*b1cdbd2cSJim Jagielski #include <svl/itemset.hxx>
49*b1cdbd2cSJim Jagielski #include <editeng/langitem.hxx>
50*b1cdbd2cSJim Jagielski #include "editeng/unolingu.hxx"
51*b1cdbd2cSJim Jagielski #include <swtypes.hxx>
52*b1cdbd2cSJim Jagielski #include <idxmrk.hxx>
53*b1cdbd2cSJim Jagielski #include <txttxmrk.hxx>
54*b1cdbd2cSJim Jagielski #include <wrtsh.hxx>
55*b1cdbd2cSJim Jagielski #include <view.hxx>
56*b1cdbd2cSJim Jagielski #include <multmrk.hxx>
57*b1cdbd2cSJim Jagielski #include <swundo.hxx>               	// fuer Undo-Ids
58*b1cdbd2cSJim Jagielski #include <cmdid.h>
59*b1cdbd2cSJim Jagielski #include <index.hrc>
60*b1cdbd2cSJim Jagielski #include <idxmrk.hrc>
61*b1cdbd2cSJim Jagielski #include <swmodule.hxx>
62*b1cdbd2cSJim Jagielski #include <fldmgr.hxx>
63*b1cdbd2cSJim Jagielski #include <fldbas.hxx>
64*b1cdbd2cSJim Jagielski #include <utlui.hrc>
65*b1cdbd2cSJim Jagielski #include <swcont.hxx>
66*b1cdbd2cSJim Jagielski #include <svl/cjkoptions.hxx>
67*b1cdbd2cSJim Jagielski #include <ndtxt.hxx>
68*b1cdbd2cSJim Jagielski #include <breakit.hxx>
69*b1cdbd2cSJim Jagielski #include <SwRewriter.hxx>
70*b1cdbd2cSJim Jagielski 
71*b1cdbd2cSJim Jagielski #include "swuiidxmrk.hxx"
72*b1cdbd2cSJim Jagielski #include <unomid.h>
73*b1cdbd2cSJim Jagielski 
74*b1cdbd2cSJim Jagielski 
75*b1cdbd2cSJim Jagielski #define POS_CONTENT 0
76*b1cdbd2cSJim Jagielski #define POS_INDEX   1
77*b1cdbd2cSJim Jagielski #define POS_USER    2
78*b1cdbd2cSJim Jagielski 
79*b1cdbd2cSJim Jagielski static sal_uInt16 nTypePos = 1; // TOX_INDEX as standard
80*b1cdbd2cSJim Jagielski static sal_uInt16 nKey1Pos = USHRT_MAX;
81*b1cdbd2cSJim Jagielski 
82*b1cdbd2cSJim Jagielski static sal_uInt16 nKey2Pos = USHRT_MAX;
83*b1cdbd2cSJim Jagielski 
84*b1cdbd2cSJim Jagielski using namespace com::sun::star;
85*b1cdbd2cSJim Jagielski using namespace com::sun::star::i18n;
86*b1cdbd2cSJim Jagielski using namespace com::sun::star::lang;
87*b1cdbd2cSJim Jagielski using namespace com::sun::star::util;
88*b1cdbd2cSJim Jagielski using namespace com::sun::star::i18n;
89*b1cdbd2cSJim Jagielski using ::rtl::OUString;
90*b1cdbd2cSJim Jagielski using namespace ::comphelper;
91*b1cdbd2cSJim Jagielski using namespace ::com::sun::star;
92*b1cdbd2cSJim Jagielski 
93*b1cdbd2cSJim Jagielski /*--------------------------------------------------------------------
94*b1cdbd2cSJim Jagielski 	 Beschreibung:	Dialog zum Einfuegen einer Verzeichnismarkierung
95*b1cdbd2cSJim Jagielski  --------------------------------------------------------------------*/
SwIndexMarkDlg(Window * pParent,sal_Bool bNewDlg,const ResId & rResId,sal_Int32 _nOptionsId,SwWrtShell & rWrtShell)96*b1cdbd2cSJim Jagielski SwIndexMarkDlg::SwIndexMarkDlg(Window *pParent,
97*b1cdbd2cSJim Jagielski 							   sal_Bool bNewDlg,
98*b1cdbd2cSJim Jagielski 							   const ResId& rResId,
99*b1cdbd2cSJim Jagielski                                sal_Int32 _nOptionsId, SwWrtShell& rWrtShell ) :
100*b1cdbd2cSJim Jagielski 	  Window(pParent, rResId),
101*b1cdbd2cSJim Jagielski     aIndexFL(this,  SW_RES(FL_INDEX )),
102*b1cdbd2cSJim Jagielski     aTypeFT (this,  SW_RES(LBL_INDEX    )),
103*b1cdbd2cSJim Jagielski     aTypeDCB(this,  SW_RES(DCB_INDEX    )),
104*b1cdbd2cSJim Jagielski 	aNewBT(this, 	SW_RES(BT_NEW 	)),
105*b1cdbd2cSJim Jagielski 
106*b1cdbd2cSJim Jagielski     aEntryFT(this,  SW_RES(LBL_ENTRY    )),
107*b1cdbd2cSJim Jagielski     aEntryED(this,  SW_RES(SL_ENTRY )),
108*b1cdbd2cSJim Jagielski     aPhoneticFT0(this,  SW_RES(FT_PHONETIC_1 )),
109*b1cdbd2cSJim Jagielski     aPhoneticED0(this,  SW_RES(ED_PHONETIC_1 )),
110*b1cdbd2cSJim Jagielski 
111*b1cdbd2cSJim Jagielski     aKeyFT(this,    SW_RES(LBL_KEY  )),
112*b1cdbd2cSJim Jagielski     aKeyDCB(this,   SW_RES(DCB_KEY  )),
113*b1cdbd2cSJim Jagielski     aPhoneticFT1(this,  SW_RES(FT_PHONETIC_2 )),
114*b1cdbd2cSJim Jagielski     aPhoneticED1(this,  SW_RES(ED_PHONETIC_2 )),
115*b1cdbd2cSJim Jagielski 
116*b1cdbd2cSJim Jagielski     aKey2FT(this,   SW_RES(LBL_KEY2 )),
117*b1cdbd2cSJim Jagielski     aKey2DCB(this,  SW_RES(DCB_KEY2 )),
118*b1cdbd2cSJim Jagielski     aPhoneticFT2(this,  SW_RES(FT_PHONETIC_3 )),
119*b1cdbd2cSJim Jagielski     aPhoneticED2(this,  SW_RES(ED_PHONETIC_3 )),
120*b1cdbd2cSJim Jagielski 
121*b1cdbd2cSJim Jagielski     aLevelFT(this,  SW_RES(LBL_LEVEL    )),
122*b1cdbd2cSJim Jagielski     aLevelED(this,  SW_RES(SL_LEVEL )),
123*b1cdbd2cSJim Jagielski     aMainEntryCB(this, SW_RES(CB_MAIN_ENTRY )),
124*b1cdbd2cSJim Jagielski     aApplyToAllCB(this,SW_RES(CB_APPLY_TO_ALL)),
125*b1cdbd2cSJim Jagielski     aSearchCaseSensitiveCB(this,    SW_RES(CB_CASESENSITIVE )),
126*b1cdbd2cSJim Jagielski     aSearchCaseWordOnlyCB(this,     SW_RES(CB_WORDONLY      )),
127*b1cdbd2cSJim Jagielski 
128*b1cdbd2cSJim Jagielski 
129*b1cdbd2cSJim Jagielski     aOKBT(this,     SW_RES(BT_OK    )),
130*b1cdbd2cSJim Jagielski     aCancelBT(this, SW_RES(BT_CANCEL )),
131*b1cdbd2cSJim Jagielski     aHelpBT(this,   SW_RES(BT_HELP   )),
132*b1cdbd2cSJim Jagielski     aDelBT(this,    SW_RES(BT_DEL   )),
133*b1cdbd2cSJim Jagielski 
134*b1cdbd2cSJim Jagielski     aPrevSameBT(this,SW_RES(BT_PREVSAME)),
135*b1cdbd2cSJim Jagielski     aNextSameBT(this,SW_RES(BT_NXTSAME)),
136*b1cdbd2cSJim Jagielski     aPrevBT(this,   SW_RES(BT_PREV  )),
137*b1cdbd2cSJim Jagielski     aNextBT(this,   SW_RES(BT_NXT   )),
138*b1cdbd2cSJim Jagielski 
139*b1cdbd2cSJim Jagielski     nOptionsId( _nOptionsId ),
140*b1cdbd2cSJim Jagielski     bDel(sal_False),
141*b1cdbd2cSJim Jagielski     bNewMark(bNewDlg),
142*b1cdbd2cSJim Jagielski     bSelected(sal_False),
143*b1cdbd2cSJim Jagielski 
144*b1cdbd2cSJim Jagielski     bPhoneticED0_ChangedByUser(sal_False),
145*b1cdbd2cSJim Jagielski 	bPhoneticED1_ChangedByUser(sal_False),
146*b1cdbd2cSJim Jagielski 	bPhoneticED2_ChangedByUser(sal_False),
147*b1cdbd2cSJim Jagielski     nLangForPhoneticReading(2052),
148*b1cdbd2cSJim Jagielski     bIsPhoneticReadingEnabled(sal_False),
149*b1cdbd2cSJim Jagielski     xExtendedIndexEntrySupplier(NULL),
150*b1cdbd2cSJim Jagielski     pTOXMgr(0),
151*b1cdbd2cSJim Jagielski     pSh(&rWrtShell)
152*b1cdbd2cSJim Jagielski {
153*b1cdbd2cSJim Jagielski 	aNewBT.SetAccessibleRelationMemberOf(&aIndexFL);
154*b1cdbd2cSJim Jagielski 
155*b1cdbd2cSJim Jagielski 	if( SvtCJKOptions().IsCJKFontEnabled() )
156*b1cdbd2cSJim Jagielski 	{
157*b1cdbd2cSJim Jagielski 		uno::Reference< lang::XMultiServiceFactory > xMSF = getProcessServiceFactory();
158*b1cdbd2cSJim Jagielski 
159*b1cdbd2cSJim Jagielski 		xExtendedIndexEntrySupplier =
160*b1cdbd2cSJim Jagielski             uno::Reference< i18n::XExtendedIndexEntrySupplier > (
161*b1cdbd2cSJim Jagielski 					xMSF->createInstance( C2U("com.sun.star.i18n.IndexEntrySupplier") ),
162*b1cdbd2cSJim Jagielski 																		uno::UNO_QUERY );
163*b1cdbd2cSJim Jagielski 	}
164*b1cdbd2cSJim Jagielski 
165*b1cdbd2cSJim Jagielski 	SetStyle(GetStyle()|WB_DIALOGCONTROL);
166*b1cdbd2cSJim Jagielski 	FreeResource();
167*b1cdbd2cSJim Jagielski 	aOKBT			.SetHelpId(HID_INSERT_IDX_MRK_OK   		);
168*b1cdbd2cSJim Jagielski 	aCancelBT		.SetHelpId(HID_INSERT_IDX_MRK_CLOSE		);
169*b1cdbd2cSJim Jagielski 	aDelBT      	.SetHelpId(HID_INSERT_IDX_MRK_DELETE	);
170*b1cdbd2cSJim Jagielski 	aNewBT      	.SetHelpId(HID_INSERT_IDX_MRK_NEW		);
171*b1cdbd2cSJim Jagielski 	aPrevBT     	.SetHelpId(HID_INSERT_IDX_MRK_PREV		);
172*b1cdbd2cSJim Jagielski 	aPrevSameBT 	.SetHelpId(HID_INSERT_IDX_MRK_PREV_SAME	);
173*b1cdbd2cSJim Jagielski 	aNextBT     	.SetHelpId(HID_INSERT_IDX_MRK_NEXT		);
174*b1cdbd2cSJim Jagielski 	aNextSameBT 	.SetHelpId(HID_INSERT_IDX_MRK_NEXT_SAME	);
175*b1cdbd2cSJim Jagielski 	aTypeDCB    	.SetHelpId(HID_INSERT_IDX_MRK_TYPE		);
176*b1cdbd2cSJim Jagielski 	aEntryED    	.SetHelpId(HID_INSERT_IDX_MRK_ENTRY		);
177*b1cdbd2cSJim Jagielski 	aKeyDCB     	.SetHelpId(HID_INSERT_IDX_MRK_PRIM_KEY	);
178*b1cdbd2cSJim Jagielski 	aKey2DCB    	.SetHelpId(HID_INSERT_IDX_MRK_SEC_KEY	);
179*b1cdbd2cSJim Jagielski 	aLevelED    	.SetHelpId(HID_INSERT_IDX_MRK_LEVEL		);
180*b1cdbd2cSJim Jagielski 	aMainEntryCB	.SetHelpId(HID_INSERT_IDX_MRK_MAIN_ENTRY);
181*b1cdbd2cSJim Jagielski 	aApplyToAllCB	.SetHelpId(HID_INSERT_IDX_MRK_APPLY_ALL	);
182*b1cdbd2cSJim Jagielski 	aPhoneticED0	.SetHelpId(HID_INSERT_IDX_MRK_PHONETIC_READING );
183*b1cdbd2cSJim Jagielski 	aPhoneticED1	.SetHelpId(HID_INSERT_IDX_MRK_PHONETIC_READING );
184*b1cdbd2cSJim Jagielski 	aPhoneticED2	.SetHelpId(HID_INSERT_IDX_MRK_PHONETIC_READING );
185*b1cdbd2cSJim Jagielski 
186*b1cdbd2cSJim Jagielski 	aSearchCaseSensitiveCB.SetHelpId(	HID_INSERT_IDX_MRK_SRCH_CASESENSITIVE	);
187*b1cdbd2cSJim Jagielski 	aSearchCaseWordOnlyCB.SetHelpId(	HID_INSERT_IDX_MRK_SRCH_WORDONLY		);
188*b1cdbd2cSJim Jagielski 
189*b1cdbd2cSJim Jagielski 
190*b1cdbd2cSJim Jagielski 	GetParent()->SetText( SW_RESSTR( bNewMark ? STR_IDXMRK_INSERT : STR_IDXMRK_EDIT));
191*b1cdbd2cSJim Jagielski 
192*b1cdbd2cSJim Jagielski 	aDelBT.SetClickHdl(LINK(this,SwIndexMarkDlg, 		DelHdl));
193*b1cdbd2cSJim Jagielski 	aPrevBT.SetClickHdl(LINK(this,SwIndexMarkDlg, 		PrevHdl));
194*b1cdbd2cSJim Jagielski 	aPrevSameBT.SetClickHdl(LINK(this,SwIndexMarkDlg, 	PrevSameHdl));
195*b1cdbd2cSJim Jagielski 	aNextBT.SetClickHdl(LINK(this,SwIndexMarkDlg, 		NextHdl));
196*b1cdbd2cSJim Jagielski 	aNextSameBT.SetClickHdl(LINK(this,SwIndexMarkDlg, 	NextSameHdl));
197*b1cdbd2cSJim Jagielski 	//aTypeDCB.SetModifyHdl(LINK(this,SwIndexMarkDlg, 	ModifyHdl));
198*b1cdbd2cSJim Jagielski 	aTypeDCB.SetSelectHdl(LINK(this,SwIndexMarkDlg, 	ModifyHdl));
199*b1cdbd2cSJim Jagielski 	aKeyDCB.SetModifyHdl(LINK(this,SwIndexMarkDlg, 		KeyDCBModifyHdl));
200*b1cdbd2cSJim Jagielski 	aKey2DCB.SetModifyHdl(LINK(this,SwIndexMarkDlg, 	KeyDCBModifyHdl));
201*b1cdbd2cSJim Jagielski 	aOKBT.SetClickHdl(LINK(this,SwIndexMarkDlg, 		InsertHdl));
202*b1cdbd2cSJim Jagielski 	aCancelBT.SetClickHdl(LINK(this,SwIndexMarkDlg, 	CloseHdl));
203*b1cdbd2cSJim Jagielski 	aEntryED.SetModifyHdl(LINK(this,SwIndexMarkDlg, 	ModifyHdl));
204*b1cdbd2cSJim Jagielski 	aNewBT.SetClickHdl(LINK(this, SwIndexMarkDlg,       NewUserIdxHdl));
205*b1cdbd2cSJim Jagielski 	aApplyToAllCB.SetClickHdl(LINK(this, SwIndexMarkDlg, SearchTypeHdl));
206*b1cdbd2cSJim Jagielski 	aPhoneticED0.SetModifyHdl(LINK(this,SwIndexMarkDlg, PhoneticEDModifyHdl));
207*b1cdbd2cSJim Jagielski 	aPhoneticED1.SetModifyHdl(LINK(this,SwIndexMarkDlg, PhoneticEDModifyHdl));
208*b1cdbd2cSJim Jagielski 	aPhoneticED2.SetModifyHdl(LINK(this,SwIndexMarkDlg, PhoneticEDModifyHdl));
209*b1cdbd2cSJim Jagielski 
210*b1cdbd2cSJim Jagielski 	if(bNewMark)
211*b1cdbd2cSJim Jagielski 	{
212*b1cdbd2cSJim Jagielski 		aDelBT.Hide();
213*b1cdbd2cSJim Jagielski 
214*b1cdbd2cSJim Jagielski 		{
215*b1cdbd2cSJim Jagielski 			ImageList aTempList( SW_RES( IMG_NAVI_ENTRYBMPH ) );
216*b1cdbd2cSJim Jagielski 			aNewBT.SetModeImage( aTempList.GetImage( SID_SW_START + CONTENT_TYPE_INDEX ), BMP_COLOR_HIGHCONTRAST );
217*b1cdbd2cSJim Jagielski 		}
218*b1cdbd2cSJim Jagielski 
219*b1cdbd2cSJim Jagielski 		{
220*b1cdbd2cSJim Jagielski 			ImageList aTempList( SW_RES( IMG_NAVI_ENTRYBMP ) );
221*b1cdbd2cSJim Jagielski 			aNewBT.SetModeImage( aTempList.GetImage( SID_SW_START + CONTENT_TYPE_INDEX ), BMP_COLOR_NORMAL );
222*b1cdbd2cSJim Jagielski 		}
223*b1cdbd2cSJim Jagielski 	}
224*b1cdbd2cSJim Jagielski 	else
225*b1cdbd2cSJim Jagielski 	{
226*b1cdbd2cSJim Jagielski 		aNewBT.Hide();
227*b1cdbd2cSJim Jagielski 		OKButton aTmp(this, WB_HIDE);
228*b1cdbd2cSJim Jagielski 		aOKBT.SetText( aTmp.GetText() );
229*b1cdbd2cSJim Jagielski 	}
230*b1cdbd2cSJim Jagielski 
231*b1cdbd2cSJim Jagielski     aEntryED.GrabFocus();
232*b1cdbd2cSJim Jagielski }
233*b1cdbd2cSJim Jagielski 
234*b1cdbd2cSJim Jagielski /*--------------------------------------------------------------------
235*b1cdbd2cSJim Jagielski 	 Beschreibung:	Controls neu initialisieren mit der aktuellen
236*b1cdbd2cSJim Jagielski 					Markierung
237*b1cdbd2cSJim Jagielski  --------------------------------------------------------------------*/
238*b1cdbd2cSJim Jagielski 
239*b1cdbd2cSJim Jagielski 
InitControls()240*b1cdbd2cSJim Jagielski void SwIndexMarkDlg::InitControls()
241*b1cdbd2cSJim Jagielski {
242*b1cdbd2cSJim Jagielski 	DBG_ASSERT(pSh && pTOXMgr, "Shell nicht da?");
243*b1cdbd2cSJim Jagielski 	// Inhalts-Verzeichnis
244*b1cdbd2cSJim Jagielski 	const SwTOXType* pType = pTOXMgr->GetTOXType(TOX_CONTENT, 0);
245*b1cdbd2cSJim Jagielski 	ASSERT(pType, "Kein Verzeichnistyp !!");
246*b1cdbd2cSJim Jagielski 	String sTmpTypeSelection;
247*b1cdbd2cSJim Jagielski 	if(aTypeDCB.GetSelectEntryCount())
248*b1cdbd2cSJim Jagielski 		sTmpTypeSelection = aTypeDCB.GetSelectEntry();
249*b1cdbd2cSJim Jagielski 	aTypeDCB.Clear();
250*b1cdbd2cSJim Jagielski 	aTypeDCB.InsertEntry(pType->GetTypeName());
251*b1cdbd2cSJim Jagielski 
252*b1cdbd2cSJim Jagielski 	// Stichwort-Verzeichnis
253*b1cdbd2cSJim Jagielski 	pType = pTOXMgr->GetTOXType(TOX_INDEX, 0);
254*b1cdbd2cSJim Jagielski 	ASSERT(pType, "Kein Verzeichnistyp !!");
255*b1cdbd2cSJim Jagielski 	aTypeDCB.InsertEntry(pType->GetTypeName());
256*b1cdbd2cSJim Jagielski 
257*b1cdbd2cSJim Jagielski 	// Benutzerverzeichnisse
258*b1cdbd2cSJim Jagielski 	sal_uInt16 nCount = pSh->GetTOXTypeCount(TOX_USER);
259*b1cdbd2cSJim Jagielski 	sal_uInt16 i;
260*b1cdbd2cSJim Jagielski 	for( i = 0; i < nCount; ++i )
261*b1cdbd2cSJim Jagielski 		aTypeDCB.InsertEntry( pSh->GetTOXType(TOX_USER, i)->GetTypeName() );
262*b1cdbd2cSJim Jagielski 
263*b1cdbd2cSJim Jagielski 	// KeyWords Primary einlesen
264*b1cdbd2cSJim Jagielski 	SvStringsSort aArr;
265*b1cdbd2cSJim Jagielski 	nCount = pSh->GetTOIKeys( TOI_PRIMARY, aArr );
266*b1cdbd2cSJim Jagielski 	for(i=0; i < nCount; ++i)
267*b1cdbd2cSJim Jagielski 		aKeyDCB.InsertEntry( *aArr[ i ] );
268*b1cdbd2cSJim Jagielski 
269*b1cdbd2cSJim Jagielski 	// KeyWords Secondary einlesen
270*b1cdbd2cSJim Jagielski 	nCount = pSh->GetTOIKeys( TOI_SECONDARY, aArr );
271*b1cdbd2cSJim Jagielski 	for(i=0; i < nCount; ++i)
272*b1cdbd2cSJim Jagielski 		aKey2DCB.InsertEntry( *aArr[ i ] );
273*b1cdbd2cSJim Jagielski 
274*b1cdbd2cSJim Jagielski 	UpdateLanguageDependenciesForPhoneticReading();
275*b1cdbd2cSJim Jagielski 
276*b1cdbd2cSJim Jagielski 	// Aktueller Eintrag
277*b1cdbd2cSJim Jagielski 	const SwTOXMark* pMark = pTOXMgr->GetCurTOXMark();
278*b1cdbd2cSJim Jagielski 	if( pMark && !bNewMark)
279*b1cdbd2cSJim Jagielski 	{
280*b1cdbd2cSJim Jagielski 		// Controls-Handling
281*b1cdbd2cSJim Jagielski 
282*b1cdbd2cSJim Jagielski 		// nur wenn mehr als eins vorhanden
283*b1cdbd2cSJim Jagielski 		// wenn gleich landet es auf dem gleichen Eintrag
284*b1cdbd2cSJim Jagielski 		pSh->SttCrsrMove();
285*b1cdbd2cSJim Jagielski 
286*b1cdbd2cSJim Jagielski 		const SwTOXMark* pMoveMark;
287*b1cdbd2cSJim Jagielski 		sal_Bool bShow = sal_False;
288*b1cdbd2cSJim Jagielski 
289*b1cdbd2cSJim Jagielski 		pMoveMark = &pSh->GotoTOXMark( *pMark, TOX_PRV );
290*b1cdbd2cSJim Jagielski 		if( pMoveMark != pMark )
291*b1cdbd2cSJim Jagielski 			pSh->GotoTOXMark( *pMoveMark, TOX_NXT ), bShow = sal_True;
292*b1cdbd2cSJim Jagielski 		aPrevBT.Enable( pMoveMark != pMark );
293*b1cdbd2cSJim Jagielski 		pMoveMark = &pSh->GotoTOXMark( *pMark, TOX_NXT );
294*b1cdbd2cSJim Jagielski 		if( pMoveMark != pMark )
295*b1cdbd2cSJim Jagielski 			pSh->GotoTOXMark( *pMoveMark, TOX_PRV ), bShow = sal_True;
296*b1cdbd2cSJim Jagielski 		aNextBT.Enable( pMoveMark != pMark );
297*b1cdbd2cSJim Jagielski 		if( bShow )
298*b1cdbd2cSJim Jagielski 		{
299*b1cdbd2cSJim Jagielski 			aPrevBT.Show();
300*b1cdbd2cSJim Jagielski 			aNextBT.Show();
301*b1cdbd2cSJim Jagielski 			bShow = sal_False;
302*b1cdbd2cSJim Jagielski 		}
303*b1cdbd2cSJim Jagielski 
304*b1cdbd2cSJim Jagielski 		pMoveMark = &pSh->GotoTOXMark( *pMark, TOX_SAME_PRV );
305*b1cdbd2cSJim Jagielski 		if( pMoveMark != pMark )
306*b1cdbd2cSJim Jagielski 			pSh->GotoTOXMark( *pMoveMark, TOX_SAME_NXT ), bShow = sal_True;
307*b1cdbd2cSJim Jagielski 		aPrevSameBT.Enable( pMoveMark != pMark );
308*b1cdbd2cSJim Jagielski 		pMoveMark = &pSh->GotoTOXMark( *pMark, TOX_SAME_NXT );
309*b1cdbd2cSJim Jagielski 		if( pMoveMark != pMark )
310*b1cdbd2cSJim Jagielski 			pSh->GotoTOXMark( *pMoveMark, TOX_SAME_PRV ), bShow = sal_True;
311*b1cdbd2cSJim Jagielski 		aNextSameBT.Enable( pMoveMark != pMark );
312*b1cdbd2cSJim Jagielski 		if( bShow )
313*b1cdbd2cSJim Jagielski 		{
314*b1cdbd2cSJim Jagielski 			aNextSameBT.Show();
315*b1cdbd2cSJim Jagielski 			aPrevSameBT.Show();
316*b1cdbd2cSJim Jagielski 		}
317*b1cdbd2cSJim Jagielski 		pSh->EndCrsrMove();
318*b1cdbd2cSJim Jagielski 
319*b1cdbd2cSJim Jagielski 		aTypeFT.Show();
320*b1cdbd2cSJim Jagielski 
321*b1cdbd2cSJim Jagielski 		aTypeDCB.Enable(sal_False);
322*b1cdbd2cSJim Jagielski 		aTypeFT.Enable(sal_False);
323*b1cdbd2cSJim Jagielski 
324*b1cdbd2cSJim Jagielski 		UpdateDialog();
325*b1cdbd2cSJim Jagielski 	}
326*b1cdbd2cSJim Jagielski 	else
327*b1cdbd2cSJim Jagielski 	{ 	// aktuelle Selektion (1.Element) anzeigen  ????
328*b1cdbd2cSJim Jagielski 		sal_uInt16 nCnt = pSh->GetCrsrCnt();
329*b1cdbd2cSJim Jagielski 		if (nCnt < 2)
330*b1cdbd2cSJim Jagielski 		{
331*b1cdbd2cSJim Jagielski 			bSelected = !pSh->HasSelection();
332*b1cdbd2cSJim Jagielski 			aOrgStr = pSh->GetView().GetSelectionTextParam(sal_True, sal_False);
333*b1cdbd2cSJim Jagielski 			aEntryED.SetText(aOrgStr);
334*b1cdbd2cSJim Jagielski 
335*b1cdbd2cSJim Jagielski 			//alle gleichen Eintraege aufzunehmen darf nur im Body und auch da nur
336*b1cdbd2cSJim Jagielski 			//bei vorhandener einfacher Selektion erlaubt werden
337*b1cdbd2cSJim Jagielski 			const sal_uInt16 nFrmType = pSh->GetFrmType(0,sal_True);
338*b1cdbd2cSJim Jagielski 			aApplyToAllCB.Show();
339*b1cdbd2cSJim Jagielski 			aSearchCaseSensitiveCB.Show();
340*b1cdbd2cSJim Jagielski 			aSearchCaseWordOnlyCB.Show();
341*b1cdbd2cSJim Jagielski 			aApplyToAllCB.Enable(0 != aOrgStr.Len() &&
342*b1cdbd2cSJim Jagielski 				0 == (nFrmType & ( FRMTYPE_HEADER | FRMTYPE_FOOTER | FRMTYPE_FLY_ANY )));
343*b1cdbd2cSJim Jagielski 			SearchTypeHdl(&aApplyToAllCB);
344*b1cdbd2cSJim Jagielski 		}
345*b1cdbd2cSJim Jagielski 
346*b1cdbd2cSJim Jagielski 		// Verzeichnistyp ist default
347*b1cdbd2cSJim Jagielski 		if(	sTmpTypeSelection.Len() &&
348*b1cdbd2cSJim Jagielski 			LISTBOX_ENTRY_NOTFOUND != aTypeDCB.GetEntryPos( sTmpTypeSelection ) )
349*b1cdbd2cSJim Jagielski             aTypeDCB.SelectEntry(sTmpTypeSelection);
350*b1cdbd2cSJim Jagielski 		else
351*b1cdbd2cSJim Jagielski 			aTypeDCB.SelectEntry(aTypeDCB.GetEntry(nTypePos));
352*b1cdbd2cSJim Jagielski 		ModifyHdl(&aTypeDCB);
353*b1cdbd2cSJim Jagielski 	}
354*b1cdbd2cSJim Jagielski }
355*b1cdbd2cSJim Jagielski 
UpdateLanguageDependenciesForPhoneticReading()356*b1cdbd2cSJim Jagielski void	SwIndexMarkDlg::UpdateLanguageDependenciesForPhoneticReading()
357*b1cdbd2cSJim Jagielski {
358*b1cdbd2cSJim Jagielski 	//no phonetic reading if no global cjk support
359*b1cdbd2cSJim Jagielski 	if( !xExtendedIndexEntrySupplier.is() )
360*b1cdbd2cSJim Jagielski 	{
361*b1cdbd2cSJim Jagielski 		bIsPhoneticReadingEnabled = sal_False;
362*b1cdbd2cSJim Jagielski 		return;
363*b1cdbd2cSJim Jagielski 	}
364*b1cdbd2cSJim Jagielski 	bIsPhoneticReadingEnabled = sal_True;
365*b1cdbd2cSJim Jagielski 
366*b1cdbd2cSJim Jagielski 	//get the current language
367*b1cdbd2cSJim Jagielski 	if(!bNewMark) //if dialog is opened to iterate existing marks
368*b1cdbd2cSJim Jagielski 	{
369*b1cdbd2cSJim Jagielski 		ASSERT(pTOXMgr, "need TOXMgr")
370*b1cdbd2cSJim Jagielski 		if(!pTOXMgr)
371*b1cdbd2cSJim Jagielski 			return;
372*b1cdbd2cSJim Jagielski 		SwTOXMark* pMark = pTOXMgr->GetCurTOXMark();
373*b1cdbd2cSJim Jagielski 		ASSERT(pMark, "need current SwTOXMark");
374*b1cdbd2cSJim Jagielski 		if(!pMark)
375*b1cdbd2cSJim Jagielski 			return;
376*b1cdbd2cSJim Jagielski 		SwTxtTOXMark* pTxtTOXMark = pMark->GetTxtTOXMark();
377*b1cdbd2cSJim Jagielski 		ASSERT(pTxtTOXMark, "need current SwTxtTOXMark");
378*b1cdbd2cSJim Jagielski 		if(!pTxtTOXMark)
379*b1cdbd2cSJim Jagielski 			return;
380*b1cdbd2cSJim Jagielski 		const SwTxtNode* pTxtNode = pTxtTOXMark->GetpTxtNd();
381*b1cdbd2cSJim Jagielski 		ASSERT(pTxtNode, "need current SwTxtNode");
382*b1cdbd2cSJim Jagielski 		if(!pTxtNode)
383*b1cdbd2cSJim Jagielski 			return;
384*b1cdbd2cSJim Jagielski 		xub_StrLen nTextIndex = *pTxtTOXMark->GetStart();
385*b1cdbd2cSJim Jagielski 		nLangForPhoneticReading = pTxtNode->GetLang( nTextIndex );
386*b1cdbd2cSJim Jagielski 	}
387*b1cdbd2cSJim Jagielski 	else //if dialog is opened to create a new mark
388*b1cdbd2cSJim Jagielski 	{
389*b1cdbd2cSJim Jagielski 		sal_uInt16 nScriptType = pSh->GetScriptType();
390*b1cdbd2cSJim Jagielski 		sal_uInt16 nWhich;
391*b1cdbd2cSJim Jagielski 		switch(nScriptType)
392*b1cdbd2cSJim Jagielski 		{
393*b1cdbd2cSJim Jagielski 			case SCRIPTTYPE_ASIAN: nWhich = RES_CHRATR_CJK_LANGUAGE; break;
394*b1cdbd2cSJim Jagielski 			case SCRIPTTYPE_COMPLEX:nWhich = RES_CHRATR_CTL_LANGUAGE; break;
395*b1cdbd2cSJim Jagielski 			//case SCRIPTTYPE_LATIN:
396*b1cdbd2cSJim Jagielski 			default:nWhich = RES_CHRATR_LANGUAGE; break;
397*b1cdbd2cSJim Jagielski 		}
398*b1cdbd2cSJim Jagielski         SfxItemSet aLangSet(pSh->GetAttrPool(), nWhich, nWhich);
399*b1cdbd2cSJim Jagielski         pSh->GetCurAttr(aLangSet);
400*b1cdbd2cSJim Jagielski         nLangForPhoneticReading = ((const SvxLanguageItem&)aLangSet.Get(nWhich)).GetLanguage();
401*b1cdbd2cSJim Jagielski 	}
402*b1cdbd2cSJim Jagielski 
403*b1cdbd2cSJim Jagielski 	/*
404*b1cdbd2cSJim Jagielski 	//enable phonetic reading dependent on the current language
405*b1cdbd2cSJim Jagielski 	{
406*b1cdbd2cSJim Jagielski 		lang::Locale aLocale( SvxCreateLocale( LanguageType( nLangForPhoneticReading ) ) );
407*b1cdbd2cSJim Jagielski 		bIsPhoneticReadingEnabled = xExtendedIndexEntrySupplier->usePhoneticEntry( aLocale );
408*b1cdbd2cSJim Jagielski 	}
409*b1cdbd2cSJim Jagielski 	*/
410*b1cdbd2cSJim Jagielski }
411*b1cdbd2cSJim Jagielski 
GetDefaultPhoneticReading(const String & rText)412*b1cdbd2cSJim Jagielski String	SwIndexMarkDlg::GetDefaultPhoneticReading( const String& rText )
413*b1cdbd2cSJim Jagielski {
414*b1cdbd2cSJim Jagielski 	if( !bIsPhoneticReadingEnabled )
415*b1cdbd2cSJim Jagielski 		return aEmptyStr;
416*b1cdbd2cSJim Jagielski 
417*b1cdbd2cSJim Jagielski 	lang::Locale aLocale( SvxCreateLocale( LanguageType( nLangForPhoneticReading ) ) );
418*b1cdbd2cSJim Jagielski 	return xExtendedIndexEntrySupplier->getPhoneticCandidate(rText, aLocale);
419*b1cdbd2cSJim Jagielski }
420*b1cdbd2cSJim Jagielski 
421*b1cdbd2cSJim Jagielski /* -----------------07.09.99 10:43-------------------
422*b1cdbd2cSJim Jagielski 	Change the content of aEntryED if text is selected
423*b1cdbd2cSJim Jagielski  --------------------------------------------------*/
424*b1cdbd2cSJim Jagielski 
Activate()425*b1cdbd2cSJim Jagielski void	SwIndexMarkDlg::Activate()
426*b1cdbd2cSJim Jagielski {
427*b1cdbd2cSJim Jagielski 	// aktuelle Selektion (1.Element) anzeigen  ????
428*b1cdbd2cSJim Jagielski 	if(bNewMark)
429*b1cdbd2cSJim Jagielski 	{
430*b1cdbd2cSJim Jagielski 		sal_uInt16 nCnt = pSh->GetCrsrCnt();
431*b1cdbd2cSJim Jagielski 		if (nCnt < 2)
432*b1cdbd2cSJim Jagielski 		{
433*b1cdbd2cSJim Jagielski 			bSelected = !pSh->HasSelection();
434*b1cdbd2cSJim Jagielski 			aOrgStr = pSh->GetView().GetSelectionTextParam(sal_True, sal_False);
435*b1cdbd2cSJim Jagielski 			aEntryED.SetText(aOrgStr);
436*b1cdbd2cSJim Jagielski 
437*b1cdbd2cSJim Jagielski 			//alle gleichen Eintraege aufzunehmen darf nur im Body und auch da nur
438*b1cdbd2cSJim Jagielski 			//bei vorhandener einfacher Selektion erlaubt werden
439*b1cdbd2cSJim Jagielski 			const sal_uInt16 nFrmType = pSh->GetFrmType(0,sal_True);
440*b1cdbd2cSJim Jagielski 			aApplyToAllCB.Show();
441*b1cdbd2cSJim Jagielski 			aSearchCaseSensitiveCB.Show();
442*b1cdbd2cSJim Jagielski 			aSearchCaseWordOnlyCB.Show();
443*b1cdbd2cSJim Jagielski 			aApplyToAllCB.Enable(0 != aOrgStr.Len() &&
444*b1cdbd2cSJim Jagielski 				0 == (nFrmType & ( FRMTYPE_HEADER | FRMTYPE_FOOTER | FRMTYPE_FLY_ANY )));
445*b1cdbd2cSJim Jagielski 			SearchTypeHdl(&aApplyToAllCB);
446*b1cdbd2cSJim Jagielski 		}
447*b1cdbd2cSJim Jagielski 		ModifyHdl(&aTypeDCB);
448*b1cdbd2cSJim Jagielski 	}
449*b1cdbd2cSJim Jagielski }
450*b1cdbd2cSJim Jagielski 
451*b1cdbd2cSJim Jagielski /*--------------------------------------------------------------------
452*b1cdbd2cSJim Jagielski 	 Beschreibung:	Ok-Button auswerten
453*b1cdbd2cSJim Jagielski  --------------------------------------------------------------------*/
Apply()454*b1cdbd2cSJim Jagielski void SwIndexMarkDlg::Apply()
455*b1cdbd2cSJim Jagielski {
456*b1cdbd2cSJim Jagielski 	InsertUpdate();
457*b1cdbd2cSJim Jagielski 	if(bSelected)
458*b1cdbd2cSJim Jagielski 		pSh->ResetSelect(0, sal_False);
459*b1cdbd2cSJim Jagielski }
460*b1cdbd2cSJim Jagielski 
461*b1cdbd2cSJim Jagielski /*--------------------------------------------------------------------
462*b1cdbd2cSJim Jagielski 	Beschreibung: Aenderungen uebernehmen
463*b1cdbd2cSJim Jagielski  --------------------------------------------------------------------*/
464*b1cdbd2cSJim Jagielski 
465*b1cdbd2cSJim Jagielski 
InsertUpdate()466*b1cdbd2cSJim Jagielski void SwIndexMarkDlg::InsertUpdate()
467*b1cdbd2cSJim Jagielski {
468*b1cdbd2cSJim Jagielski 	pSh->StartUndo(bDel ? UNDO_INDEX_ENTRY_DELETE : UNDO_INDEX_ENTRY_INSERT);
469*b1cdbd2cSJim Jagielski 	pSh->StartAllAction();
470*b1cdbd2cSJim Jagielski 
471*b1cdbd2cSJim Jagielski     SwRewriter aRewriter;
472*b1cdbd2cSJim Jagielski 
473*b1cdbd2cSJim Jagielski 	if( bNewMark )
474*b1cdbd2cSJim Jagielski     {
475*b1cdbd2cSJim Jagielski 		InsertMark();
476*b1cdbd2cSJim Jagielski 
477*b1cdbd2cSJim Jagielski         if ( pTOXMgr->GetCurTOXMark())
478*b1cdbd2cSJim Jagielski             aRewriter.AddRule(UNDO_ARG1, pTOXMgr->GetCurTOXMark()->GetText());
479*b1cdbd2cSJim Jagielski     }
480*b1cdbd2cSJim Jagielski 	else if( !pSh->HasReadonlySel() )
481*b1cdbd2cSJim Jagielski 	{
482*b1cdbd2cSJim Jagielski         if ( pTOXMgr->GetCurTOXMark())
483*b1cdbd2cSJim Jagielski             aRewriter.AddRule(UNDO_ARG1,
484*b1cdbd2cSJim Jagielski                               pTOXMgr->GetCurTOXMark()->GetText());
485*b1cdbd2cSJim Jagielski 
486*b1cdbd2cSJim Jagielski 		if( bDel )
487*b1cdbd2cSJim Jagielski 			pTOXMgr->DeleteTOXMark();
488*b1cdbd2cSJim Jagielski 		else if( pTOXMgr->GetCurTOXMark() )
489*b1cdbd2cSJim Jagielski 			UpdateMark();
490*b1cdbd2cSJim Jagielski 	}
491*b1cdbd2cSJim Jagielski 
492*b1cdbd2cSJim Jagielski 	pSh->EndAllAction();
493*b1cdbd2cSJim Jagielski 	pSh->EndUndo(bDel ? UNDO_INDEX_ENTRY_DELETE : UNDO_INDEX_ENTRY_INSERT);
494*b1cdbd2cSJim Jagielski 
495*b1cdbd2cSJim Jagielski 	if((nTypePos = aTypeDCB.GetEntryPos(aTypeDCB.GetSelectEntry())) == LISTBOX_ENTRY_NOTFOUND)
496*b1cdbd2cSJim Jagielski 		nTypePos = 0;
497*b1cdbd2cSJim Jagielski 
498*b1cdbd2cSJim Jagielski 	nKey1Pos = aKeyDCB.GetEntryPos(aKeyDCB.GetText());
499*b1cdbd2cSJim Jagielski 	nKey2Pos = aKey2DCB.GetEntryPos(aKey2DCB.GetText());
500*b1cdbd2cSJim Jagielski }
501*b1cdbd2cSJim Jagielski 
502*b1cdbd2cSJim Jagielski /*--------------------------------------------------------------------
503*b1cdbd2cSJim Jagielski 	 Beschreibung:	Marke einfuegen
504*b1cdbd2cSJim Jagielski  --------------------------------------------------------------------*/
lcl_SelectSameStrings(SwWrtShell & rSh,sal_Bool bWordOnly,sal_Bool bCaseSensitive)505*b1cdbd2cSJim Jagielski static void lcl_SelectSameStrings(SwWrtShell& rSh, sal_Bool bWordOnly, sal_Bool bCaseSensitive)
506*b1cdbd2cSJim Jagielski {
507*b1cdbd2cSJim Jagielski 	rSh.Push();
508*b1cdbd2cSJim Jagielski 
509*b1cdbd2cSJim Jagielski 	SearchOptions aSearchOpt(
510*b1cdbd2cSJim Jagielski 						SearchAlgorithms_ABSOLUTE,
511*b1cdbd2cSJim Jagielski 						( bWordOnly ? SearchFlags::NORM_WORD_ONLY : 0 ),
512*b1cdbd2cSJim Jagielski 						rSh.GetSelTxt(), OUString(),
513*b1cdbd2cSJim Jagielski 						SvxCreateLocale( GetAppLanguage() ),
514*b1cdbd2cSJim Jagielski 						0, 0, 0,
515*b1cdbd2cSJim Jagielski 						(bCaseSensitive
516*b1cdbd2cSJim Jagielski 							? 0
517*b1cdbd2cSJim Jagielski 							: TransliterationModules_IGNORE_CASE) );
518*b1cdbd2cSJim Jagielski 
519*b1cdbd2cSJim Jagielski 	rSh.ClearMark();
520*b1cdbd2cSJim Jagielski     sal_Bool bCancel;
521*b1cdbd2cSJim Jagielski 
522*b1cdbd2cSJim Jagielski 	//todo/mba: assuming that notes should not be searched
523*b1cdbd2cSJim Jagielski 	sal_Bool bSearchInNotes = sal_False;
524*b1cdbd2cSJim Jagielski     rSh.Find( aSearchOpt,  bSearchInNotes, DOCPOS_START, DOCPOS_END, bCancel,
525*b1cdbd2cSJim Jagielski                         (FindRanges)(FND_IN_SELALL|FND_IN_BODYONLY), sal_False );
526*b1cdbd2cSJim Jagielski }
527*b1cdbd2cSJim Jagielski 
528*b1cdbd2cSJim Jagielski 
InsertMark()529*b1cdbd2cSJim Jagielski void SwIndexMarkDlg::InsertMark()
530*b1cdbd2cSJim Jagielski {
531*b1cdbd2cSJim Jagielski 	sal_uInt16 nPos = aTypeDCB.GetEntryPos(aTypeDCB.GetSelectEntry());
532*b1cdbd2cSJim Jagielski 	TOXTypes eType = nPos == POS_CONTENT ? TOX_CONTENT :
533*b1cdbd2cSJim Jagielski 						nPos == POS_INDEX ? TOX_INDEX : TOX_USER;
534*b1cdbd2cSJim Jagielski 
535*b1cdbd2cSJim Jagielski 	SwTOXMarkDescription aDesc(eType);
536*b1cdbd2cSJim Jagielski 
537*b1cdbd2cSJim Jagielski 	sal_uInt16 nLevel = (sal_uInt16)aLevelED.Denormalize(aLevelED.GetValue());
538*b1cdbd2cSJim Jagielski 	switch(nPos)
539*b1cdbd2cSJim Jagielski 	{
540*b1cdbd2cSJim Jagielski 		case POS_CONTENT : break;
541*b1cdbd2cSJim Jagielski 		case POS_INDEX:  	// Stichwortverzeichnismarke
542*b1cdbd2cSJim Jagielski 		{
543*b1cdbd2cSJim Jagielski 			UpdateKeyBoxes();
544*b1cdbd2cSJim Jagielski 			String  aPrim(aKeyDCB.GetText());
545*b1cdbd2cSJim Jagielski 			String  aSec(aKey2DCB.GetText());
546*b1cdbd2cSJim Jagielski 			aDesc.SetPrimKey(aPrim);
547*b1cdbd2cSJim Jagielski 			aDesc.SetSecKey(aSec);
548*b1cdbd2cSJim Jagielski 			aDesc.SetMainEntry(aMainEntryCB.IsChecked());
549*b1cdbd2cSJim Jagielski 			aDesc.SetPhoneticReadingOfAltStr(aPhoneticED0.GetText());
550*b1cdbd2cSJim Jagielski 			aDesc.SetPhoneticReadingOfPrimKey(aPhoneticED1.GetText());
551*b1cdbd2cSJim Jagielski 			aDesc.SetPhoneticReadingOfSecKey(aPhoneticED2.GetText());
552*b1cdbd2cSJim Jagielski 		}
553*b1cdbd2cSJim Jagielski 		break;
554*b1cdbd2cSJim Jagielski 		default:            // Userdefinedverz.-Marke
555*b1cdbd2cSJim Jagielski 		{
556*b1cdbd2cSJim Jagielski 			String aName(aTypeDCB.GetSelectEntry());
557*b1cdbd2cSJim Jagielski 			aDesc.SetTOUName(aName);
558*b1cdbd2cSJim Jagielski 		}
559*b1cdbd2cSJim Jagielski 	}
560*b1cdbd2cSJim Jagielski 	if (aOrgStr != aEntryED.GetText())
561*b1cdbd2cSJim Jagielski 		aDesc.SetAltStr(aEntryED.GetText());
562*b1cdbd2cSJim Jagielski 	sal_Bool bApplyAll = aApplyToAllCB.IsChecked();
563*b1cdbd2cSJim Jagielski     sal_Bool bWordOnly = aSearchCaseWordOnlyCB.IsChecked();
564*b1cdbd2cSJim Jagielski 	sal_Bool bCaseSensitive = aSearchCaseSensitiveCB.IsChecked();
565*b1cdbd2cSJim Jagielski 
566*b1cdbd2cSJim Jagielski 	pSh->StartAllAction();
567*b1cdbd2cSJim Jagielski 	// hier muessen alle gleichen Strings selektiert werden
568*b1cdbd2cSJim Jagielski 	// damit der Eintrag auf alle gleichen Strings angewandt wird
569*b1cdbd2cSJim Jagielski 	if(bApplyAll)
570*b1cdbd2cSJim Jagielski 	{
571*b1cdbd2cSJim Jagielski 		lcl_SelectSameStrings(*pSh, bWordOnly, bCaseSensitive);
572*b1cdbd2cSJim Jagielski 	}
573*b1cdbd2cSJim Jagielski 	aDesc.SetLevel(nLevel);
574*b1cdbd2cSJim Jagielski 	SwTOXMgr aMgr(pSh);
575*b1cdbd2cSJim Jagielski 	aMgr.InsertTOXMark(aDesc);
576*b1cdbd2cSJim Jagielski 	if(bApplyAll)
577*b1cdbd2cSJim Jagielski 		pSh->Pop(sal_False);
578*b1cdbd2cSJim Jagielski 
579*b1cdbd2cSJim Jagielski 	pSh->EndAllAction();
580*b1cdbd2cSJim Jagielski }
581*b1cdbd2cSJim Jagielski 
582*b1cdbd2cSJim Jagielski /*--------------------------------------------------------------------
583*b1cdbd2cSJim Jagielski 	 Beschreibung:	Marke Updaten
584*b1cdbd2cSJim Jagielski  --------------------------------------------------------------------*/
585*b1cdbd2cSJim Jagielski 
586*b1cdbd2cSJim Jagielski 
UpdateMark()587*b1cdbd2cSJim Jagielski void SwIndexMarkDlg::UpdateMark()
588*b1cdbd2cSJim Jagielski {
589*b1cdbd2cSJim Jagielski 	String 	aAltText(aEntryED.GetText());
590*b1cdbd2cSJim Jagielski 	String* pAltText = aOrgStr != aEntryED.GetText() ? &aAltText : 0;
591*b1cdbd2cSJim Jagielski 	//empty alternative texts are not allowed
592*b1cdbd2cSJim Jagielski 	if(pAltText && !pAltText->Len())
593*b1cdbd2cSJim Jagielski 		return;
594*b1cdbd2cSJim Jagielski 
595*b1cdbd2cSJim Jagielski 	UpdateKeyBoxes();
596*b1cdbd2cSJim Jagielski 
597*b1cdbd2cSJim Jagielski 	sal_uInt16 nPos = aTypeDCB.GetEntryPos(aTypeDCB.GetSelectEntry());
598*b1cdbd2cSJim Jagielski 	TOXTypes eType = TOX_USER;
599*b1cdbd2cSJim Jagielski 	if(POS_CONTENT == nPos)
600*b1cdbd2cSJim Jagielski 		eType = TOX_CONTENT;
601*b1cdbd2cSJim Jagielski 	else if(POS_INDEX == nPos)
602*b1cdbd2cSJim Jagielski 		eType = TOX_INDEX;
603*b1cdbd2cSJim Jagielski 
604*b1cdbd2cSJim Jagielski 	SwTOXMarkDescription aDesc(eType);
605*b1cdbd2cSJim Jagielski     aDesc.SetLevel( static_cast< int >(aLevelED.GetValue()) );
606*b1cdbd2cSJim Jagielski 	if(pAltText)
607*b1cdbd2cSJim Jagielski 		aDesc.SetAltStr(*pAltText);
608*b1cdbd2cSJim Jagielski 
609*b1cdbd2cSJim Jagielski 	String  aPrim(aKeyDCB.GetText());
610*b1cdbd2cSJim Jagielski 	if(aPrim.Len())
611*b1cdbd2cSJim Jagielski 		aDesc.SetPrimKey(aPrim);
612*b1cdbd2cSJim Jagielski 	String  aSec(aKey2DCB.GetText());
613*b1cdbd2cSJim Jagielski 	if(aSec.Len())
614*b1cdbd2cSJim Jagielski 		aDesc.SetSecKey(aSec);
615*b1cdbd2cSJim Jagielski 
616*b1cdbd2cSJim Jagielski 	if(eType == TOX_INDEX)
617*b1cdbd2cSJim Jagielski 	{
618*b1cdbd2cSJim Jagielski 		aDesc.SetPhoneticReadingOfAltStr(aPhoneticED0.GetText());
619*b1cdbd2cSJim Jagielski 		aDesc.SetPhoneticReadingOfPrimKey(aPhoneticED1.GetText());
620*b1cdbd2cSJim Jagielski 		aDesc.SetPhoneticReadingOfSecKey(aPhoneticED2.GetText());
621*b1cdbd2cSJim Jagielski 	}
622*b1cdbd2cSJim Jagielski 	aDesc.SetMainEntry(aMainEntryCB.IsVisible() && aMainEntryCB.IsChecked());
623*b1cdbd2cSJim Jagielski 	pTOXMgr->UpdateTOXMark(aDesc);
624*b1cdbd2cSJim Jagielski }
625*b1cdbd2cSJim Jagielski 
626*b1cdbd2cSJim Jagielski /*--------------------------------------------------------------------
627*b1cdbd2cSJim Jagielski 	Beschreibung: Neue Keys eintragen
628*b1cdbd2cSJim Jagielski  --------------------------------------------------------------------*/
629*b1cdbd2cSJim Jagielski 
630*b1cdbd2cSJim Jagielski 
UpdateKeyBoxes()631*b1cdbd2cSJim Jagielski void SwIndexMarkDlg::UpdateKeyBoxes()
632*b1cdbd2cSJim Jagielski {
633*b1cdbd2cSJim Jagielski 	String aKey(aKeyDCB.GetText());
634*b1cdbd2cSJim Jagielski 	sal_uInt16 nPos = aKeyDCB.GetEntryPos(aKey);
635*b1cdbd2cSJim Jagielski 
636*b1cdbd2cSJim Jagielski 	if(nPos == LISTBOX_ENTRY_NOTFOUND && aKey.Len() > 0)
637*b1cdbd2cSJim Jagielski 	{	// neuen Key erzeugen
638*b1cdbd2cSJim Jagielski 		aKeyDCB.InsertEntry(aKey);
639*b1cdbd2cSJim Jagielski 	}
640*b1cdbd2cSJim Jagielski 
641*b1cdbd2cSJim Jagielski 	aKey = aKey2DCB.GetText();
642*b1cdbd2cSJim Jagielski 	nPos = aKey2DCB.GetEntryPos(aKey);
643*b1cdbd2cSJim Jagielski 
644*b1cdbd2cSJim Jagielski 	if(nPos == LISTBOX_ENTRY_NOTFOUND && aKey.Len() > 0)
645*b1cdbd2cSJim Jagielski 	{	// neuen Key erzeugen
646*b1cdbd2cSJim Jagielski 		aKey2DCB.InsertEntry(aKey);
647*b1cdbd2cSJim Jagielski 	}
648*b1cdbd2cSJim Jagielski }
649*b1cdbd2cSJim Jagielski /* -----------------13.10.99 15:10-------------------
650*b1cdbd2cSJim Jagielski 
651*b1cdbd2cSJim Jagielski  --------------------------------------------------*/
652*b1cdbd2cSJim Jagielski class SwNewUserIdxDlg : public ModalDialog
653*b1cdbd2cSJim Jagielski {
654*b1cdbd2cSJim Jagielski 	OKButton 		aOKPB;
655*b1cdbd2cSJim Jagielski 	CancelButton 	aCancelPB;
656*b1cdbd2cSJim Jagielski 	HelpButton 		aHelpPB;
657*b1cdbd2cSJim Jagielski     FixedLine       aNameFL;
658*b1cdbd2cSJim Jagielski 	FixedText		aNameFT;
659*b1cdbd2cSJim Jagielski 	Edit			aNameED;
660*b1cdbd2cSJim Jagielski 
661*b1cdbd2cSJim Jagielski 	SwIndexMarkDlg*	pDlg;
662*b1cdbd2cSJim Jagielski 
663*b1cdbd2cSJim Jagielski 	DECL_LINK( ModifyHdl, Edit*);
664*b1cdbd2cSJim Jagielski 
665*b1cdbd2cSJim Jagielski 	public:
SwNewUserIdxDlg(SwIndexMarkDlg * pParent)666*b1cdbd2cSJim Jagielski 		SwNewUserIdxDlg(SwIndexMarkDlg* pParent) :
667*b1cdbd2cSJim Jagielski 			ModalDialog(pParent, SW_RES(DLG_NEW_USER_IDX)),
668*b1cdbd2cSJim Jagielski             aOKPB(this, SW_RES(     PB_OK       )),
669*b1cdbd2cSJim Jagielski             aCancelPB(this, SW_RES( PB_CANCEL   )),
670*b1cdbd2cSJim Jagielski             aHelpPB(this, SW_RES(   PB_HELP     )),
671*b1cdbd2cSJim Jagielski             aNameFL(this, SW_RES(    FL_NAME     )),
672*b1cdbd2cSJim Jagielski             aNameFT(this, SW_RES(   FT_NAME     )),
673*b1cdbd2cSJim Jagielski             aNameED(this, SW_RES(    ED_NAME     )),
674*b1cdbd2cSJim Jagielski             pDlg(pParent)
675*b1cdbd2cSJim Jagielski 			{
676*b1cdbd2cSJim Jagielski 				FreeResource();
677*b1cdbd2cSJim Jagielski 				aNameED.SetModifyHdl(LINK(this, SwNewUserIdxDlg, ModifyHdl));
678*b1cdbd2cSJim Jagielski 				aOKPB.Enable(sal_False);
679*b1cdbd2cSJim Jagielski 				aNameED.GrabFocus();
680*b1cdbd2cSJim Jagielski 			}
681*b1cdbd2cSJim Jagielski 
682*b1cdbd2cSJim Jagielski 	virtual void	Apply();
GetName()683*b1cdbd2cSJim Jagielski 	String 	GetName(){return aNameED.GetText();}
684*b1cdbd2cSJim Jagielski };
Apply()685*b1cdbd2cSJim Jagielski void SwNewUserIdxDlg::Apply()
686*b1cdbd2cSJim Jagielski {
687*b1cdbd2cSJim Jagielski }
688*b1cdbd2cSJim Jagielski 
IMPL_LINK(SwNewUserIdxDlg,ModifyHdl,Edit *,pEdit)689*b1cdbd2cSJim Jagielski IMPL_LINK( SwNewUserIdxDlg, ModifyHdl, Edit*, pEdit)
690*b1cdbd2cSJim Jagielski {
691*b1cdbd2cSJim Jagielski 	aOKPB.Enable(pEdit->GetText().Len() && !pDlg->IsTOXType(pEdit->GetText()));
692*b1cdbd2cSJim Jagielski 	return 0;
693*b1cdbd2cSJim Jagielski }
694*b1cdbd2cSJim Jagielski 
IMPL_LINK(SwIndexMarkDlg,NewUserIdxHdl,Button *,EMPTYARG)695*b1cdbd2cSJim Jagielski IMPL_LINK( SwIndexMarkDlg, NewUserIdxHdl, Button*, EMPTYARG)
696*b1cdbd2cSJim Jagielski {
697*b1cdbd2cSJim Jagielski 	SwNewUserIdxDlg* pDlg = new SwNewUserIdxDlg(this);
698*b1cdbd2cSJim Jagielski 	if(RET_OK == pDlg->Execute())
699*b1cdbd2cSJim Jagielski 	{
700*b1cdbd2cSJim Jagielski 		String sNewName(pDlg->GetName());
701*b1cdbd2cSJim Jagielski 		aTypeDCB.InsertEntry(sNewName);
702*b1cdbd2cSJim Jagielski 		aTypeDCB.SelectEntry(sNewName);
703*b1cdbd2cSJim Jagielski 	}
704*b1cdbd2cSJim Jagielski 	delete pDlg;
705*b1cdbd2cSJim Jagielski 	return 0;
706*b1cdbd2cSJim Jagielski }
707*b1cdbd2cSJim Jagielski /* -----------------------------17.01.00 12:18--------------------------------
708*b1cdbd2cSJim Jagielski 
709*b1cdbd2cSJim Jagielski  ---------------------------------------------------------------------------*/
IMPL_LINK(SwIndexMarkDlg,SearchTypeHdl,CheckBox *,pBox)710*b1cdbd2cSJim Jagielski IMPL_LINK( SwIndexMarkDlg, SearchTypeHdl, CheckBox*, pBox)
711*b1cdbd2cSJim Jagielski {
712*b1cdbd2cSJim Jagielski 	sal_Bool bEnable = pBox->IsChecked() && pBox->IsEnabled();
713*b1cdbd2cSJim Jagielski 	aSearchCaseWordOnlyCB.Enable(bEnable);
714*b1cdbd2cSJim Jagielski 	aSearchCaseSensitiveCB.Enable(bEnable);
715*b1cdbd2cSJim Jagielski 	return 0;
716*b1cdbd2cSJim Jagielski }
717*b1cdbd2cSJim Jagielski /* -----------------07.09.99 10:30-------------------
718*b1cdbd2cSJim Jagielski 
719*b1cdbd2cSJim Jagielski  --------------------------------------------------*/
IMPL_LINK(SwIndexMarkDlg,InsertHdl,Button *,pButton)720*b1cdbd2cSJim Jagielski IMPL_LINK( SwIndexMarkDlg, InsertHdl, Button *, pButton )
721*b1cdbd2cSJim Jagielski {
722*b1cdbd2cSJim Jagielski 	Apply();
723*b1cdbd2cSJim Jagielski 	//close the dialog if only one entry is available
724*b1cdbd2cSJim Jagielski 	if(!bNewMark && !aPrevBT.IsVisible() && !aNextBT.IsVisible())
725*b1cdbd2cSJim Jagielski 		CloseHdl(pButton);
726*b1cdbd2cSJim Jagielski 	return 0;
727*b1cdbd2cSJim Jagielski }
728*b1cdbd2cSJim Jagielski /* -----------------07.09.99 10:29-------------------
729*b1cdbd2cSJim Jagielski 
730*b1cdbd2cSJim Jagielski  --------------------------------------------------*/
IMPL_LINK(SwIndexMarkDlg,CloseHdl,Button *,EMPTYARG)731*b1cdbd2cSJim Jagielski IMPL_LINK( SwIndexMarkDlg, CloseHdl, Button *, EMPTYARG )
732*b1cdbd2cSJim Jagielski {
733*b1cdbd2cSJim Jagielski 	if(bNewMark)
734*b1cdbd2cSJim Jagielski 	{
735*b1cdbd2cSJim Jagielski 		sal_uInt16 nSlot = FN_INSERT_IDX_ENTRY_DLG;
736*b1cdbd2cSJim Jagielski 		SfxViewFrame::Current()->GetDispatcher()->Execute(nSlot,
737*b1cdbd2cSJim Jagielski 					SFX_CALLMODE_ASYNCHRON|SFX_CALLMODE_RECORD);
738*b1cdbd2cSJim Jagielski 	}
739*b1cdbd2cSJim Jagielski 	else
740*b1cdbd2cSJim Jagielski 	{
741*b1cdbd2cSJim Jagielski 		((SwIndexMarkModalDlg*)GetParent())->EndDialog(RET_CANCEL);
742*b1cdbd2cSJim Jagielski 	}
743*b1cdbd2cSJim Jagielski 	return 0;
744*b1cdbd2cSJim Jagielski }
745*b1cdbd2cSJim Jagielski /*--------------------------------------------------------------------
746*b1cdbd2cSJim Jagielski 	 Beschreibung:	VerzeichnisTyp auswaehlen nur bei Einfuegen
747*b1cdbd2cSJim Jagielski  --------------------------------------------------------------------*/
IMPL_LINK(SwIndexMarkDlg,ModifyHdl,ListBox *,pBox)748*b1cdbd2cSJim Jagielski IMPL_LINK( SwIndexMarkDlg, ModifyHdl, ListBox *, pBox )
749*b1cdbd2cSJim Jagielski {
750*b1cdbd2cSJim Jagielski 	if(&aTypeDCB == pBox)
751*b1cdbd2cSJim Jagielski 	{
752*b1cdbd2cSJim Jagielski 		// Verzeichnistyp setzen
753*b1cdbd2cSJim Jagielski 		sal_uInt16 nPos = aTypeDCB.GetEntryPos(aTypeDCB.GetSelectEntry());
754*b1cdbd2cSJim Jagielski 		sal_Bool bLevelEnable = sal_False,
755*b1cdbd2cSJim Jagielski 		 	bKeyEnable	  = sal_False,
756*b1cdbd2cSJim Jagielski 		 	bSetKey2 	  = sal_False,
757*b1cdbd2cSJim Jagielski 		 	bKey2Enable  = sal_False,
758*b1cdbd2cSJim Jagielski 			bEntryHasText	= sal_False,
759*b1cdbd2cSJim Jagielski 			bKey1HasText	= sal_False,
760*b1cdbd2cSJim Jagielski 			bKey2HasText	= sal_False;
761*b1cdbd2cSJim Jagielski 		if(nPos == POS_INDEX)
762*b1cdbd2cSJim Jagielski 		{
763*b1cdbd2cSJim Jagielski 			if(aEntryED.GetText().Len())
764*b1cdbd2cSJim Jagielski 				bEntryHasText = sal_True;
765*b1cdbd2cSJim Jagielski 			aPhoneticED0.SetText(GetDefaultPhoneticReading(aEntryED.GetText()));
766*b1cdbd2cSJim Jagielski 
767*b1cdbd2cSJim Jagielski 			bKeyEnable = sal_True;
768*b1cdbd2cSJim Jagielski 			aKeyDCB.SetText(aKeyDCB.GetEntry(nKey1Pos));
769*b1cdbd2cSJim Jagielski 			aPhoneticED1.SetText(GetDefaultPhoneticReading(aKeyDCB.GetText()));
770*b1cdbd2cSJim Jagielski 			if(aKeyDCB.GetText().Len() > 0)
771*b1cdbd2cSJim Jagielski 			{
772*b1cdbd2cSJim Jagielski 				bKey1HasText = bSetKey2 = bKey2Enable = sal_True;
773*b1cdbd2cSJim Jagielski 				aKey2DCB.SetText(aKey2DCB.GetEntry(nKey2Pos));
774*b1cdbd2cSJim Jagielski 				aPhoneticED2.SetText(GetDefaultPhoneticReading(aKey2DCB.GetText()));
775*b1cdbd2cSJim Jagielski 				if(aKey2DCB.GetText().Len())
776*b1cdbd2cSJim Jagielski 					bKey2HasText = sal_True;
777*b1cdbd2cSJim Jagielski 			}
778*b1cdbd2cSJim Jagielski 		}
779*b1cdbd2cSJim Jagielski 		else
780*b1cdbd2cSJim Jagielski 		{
781*b1cdbd2cSJim Jagielski 			bLevelEnable = sal_True;
782*b1cdbd2cSJim Jagielski 			aLevelED.SetMax(MAXLEVEL);
783*b1cdbd2cSJim Jagielski 			aLevelED.SetValue(aLevelED.Normalize(0));
784*b1cdbd2cSJim Jagielski 			bSetKey2 = sal_True;
785*b1cdbd2cSJim Jagielski 		}
786*b1cdbd2cSJim Jagielski 		aLevelFT.Show(bLevelEnable);
787*b1cdbd2cSJim Jagielski 		aLevelED.Show(bLevelEnable);
788*b1cdbd2cSJim Jagielski 		aMainEntryCB.Show(nPos == POS_INDEX);
789*b1cdbd2cSJim Jagielski 
790*b1cdbd2cSJim Jagielski 		aKeyFT.Enable(bKeyEnable);
791*b1cdbd2cSJim Jagielski 		aKeyDCB.Enable(bKeyEnable);
792*b1cdbd2cSJim Jagielski 		if ( bSetKey2 )
793*b1cdbd2cSJim Jagielski 		{
794*b1cdbd2cSJim Jagielski 			aKey2DCB.Enable(bKey2Enable);
795*b1cdbd2cSJim Jagielski 			aKey2FT.Enable(bKey2Enable);
796*b1cdbd2cSJim Jagielski 		}
797*b1cdbd2cSJim Jagielski 		aPhoneticFT0.Enable(bKeyEnable&&bEntryHasText&&bIsPhoneticReadingEnabled);
798*b1cdbd2cSJim Jagielski 		aPhoneticED0.Enable(bKeyEnable&&bEntryHasText&&bIsPhoneticReadingEnabled);
799*b1cdbd2cSJim Jagielski 		aPhoneticFT1.Enable(bKeyEnable&&bKey1HasText&&bIsPhoneticReadingEnabled);
800*b1cdbd2cSJim Jagielski 		aPhoneticED1.Enable(bKeyEnable&&bKey1HasText&&bIsPhoneticReadingEnabled);
801*b1cdbd2cSJim Jagielski 		aPhoneticFT2.Enable(bKeyEnable&&bKey2HasText&&bIsPhoneticReadingEnabled);
802*b1cdbd2cSJim Jagielski 		aPhoneticED2.Enable(bKeyEnable&&bKey2HasText&&bIsPhoneticReadingEnabled);
803*b1cdbd2cSJim Jagielski 	}
804*b1cdbd2cSJim Jagielski 	else //aEntryED  !!aEntryED is not a ListBox but a Edit
805*b1cdbd2cSJim Jagielski 	{
806*b1cdbd2cSJim Jagielski 		sal_Bool bHasText = (aEntryED.GetText().Len()>0);
807*b1cdbd2cSJim Jagielski 		if(!bHasText)
808*b1cdbd2cSJim Jagielski 		{
809*b1cdbd2cSJim Jagielski 			aPhoneticED0.SetText(aEmptyStr);
810*b1cdbd2cSJim Jagielski 			bPhoneticED0_ChangedByUser = sal_False;
811*b1cdbd2cSJim Jagielski 		}
812*b1cdbd2cSJim Jagielski 		else if(!bPhoneticED0_ChangedByUser)
813*b1cdbd2cSJim Jagielski 			aPhoneticED0.SetText(GetDefaultPhoneticReading(aEntryED.GetText()));
814*b1cdbd2cSJim Jagielski 
815*b1cdbd2cSJim Jagielski 		aPhoneticFT0.Enable(bHasText&&bIsPhoneticReadingEnabled);
816*b1cdbd2cSJim Jagielski 		aPhoneticED0.Enable(bHasText&&bIsPhoneticReadingEnabled);
817*b1cdbd2cSJim Jagielski 	}
818*b1cdbd2cSJim Jagielski     aOKBT.Enable(!pSh->HasReadonlySel() &&
819*b1cdbd2cSJim Jagielski         (aEntryED.GetText().Len() || pSh->GetCrsrCnt(sal_False)));
820*b1cdbd2cSJim Jagielski 	return 0;
821*b1cdbd2cSJim Jagielski }
822*b1cdbd2cSJim Jagielski 
823*b1cdbd2cSJim Jagielski /*--------------------------------------------------------------------
824*b1cdbd2cSJim Jagielski 	 Beschreibung:
825*b1cdbd2cSJim Jagielski  --------------------------------------------------------------------*/
826*b1cdbd2cSJim Jagielski 
827*b1cdbd2cSJim Jagielski 
IMPL_LINK_INLINE_START(SwIndexMarkDlg,NextHdl,Button *,EMPTYARG)828*b1cdbd2cSJim Jagielski IMPL_LINK_INLINE_START( SwIndexMarkDlg, NextHdl, Button *, EMPTYARG )
829*b1cdbd2cSJim Jagielski {
830*b1cdbd2cSJim Jagielski 	InsertUpdate();
831*b1cdbd2cSJim Jagielski 	pTOXMgr->NextTOXMark();
832*b1cdbd2cSJim Jagielski 	UpdateDialog();
833*b1cdbd2cSJim Jagielski 	return 0;
834*b1cdbd2cSJim Jagielski }
IMPL_LINK_INLINE_END(SwIndexMarkDlg,NextHdl,Button *,EMPTYARG)835*b1cdbd2cSJim Jagielski IMPL_LINK_INLINE_END( SwIndexMarkDlg, NextHdl, Button *, EMPTYARG )
836*b1cdbd2cSJim Jagielski 
837*b1cdbd2cSJim Jagielski 
838*b1cdbd2cSJim Jagielski IMPL_LINK_INLINE_START( SwIndexMarkDlg, NextSameHdl, Button *, EMPTYARG )
839*b1cdbd2cSJim Jagielski {
840*b1cdbd2cSJim Jagielski 	InsertUpdate();
841*b1cdbd2cSJim Jagielski 	pTOXMgr->NextTOXMark(sal_True);
842*b1cdbd2cSJim Jagielski 	UpdateDialog();
843*b1cdbd2cSJim Jagielski 	return 0;
844*b1cdbd2cSJim Jagielski }
IMPL_LINK_INLINE_END(SwIndexMarkDlg,NextSameHdl,Button *,EMPTYARG)845*b1cdbd2cSJim Jagielski IMPL_LINK_INLINE_END( SwIndexMarkDlg, NextSameHdl, Button *, EMPTYARG )
846*b1cdbd2cSJim Jagielski 
847*b1cdbd2cSJim Jagielski 
848*b1cdbd2cSJim Jagielski IMPL_LINK_INLINE_START( SwIndexMarkDlg, PrevHdl, Button *, EMPTYARG )
849*b1cdbd2cSJim Jagielski {
850*b1cdbd2cSJim Jagielski 	InsertUpdate();
851*b1cdbd2cSJim Jagielski 	pTOXMgr->PrevTOXMark();
852*b1cdbd2cSJim Jagielski 	UpdateDialog();
853*b1cdbd2cSJim Jagielski 	return 0;
854*b1cdbd2cSJim Jagielski }
IMPL_LINK_INLINE_END(SwIndexMarkDlg,PrevHdl,Button *,EMPTYARG)855*b1cdbd2cSJim Jagielski IMPL_LINK_INLINE_END( SwIndexMarkDlg, PrevHdl, Button *, EMPTYARG )
856*b1cdbd2cSJim Jagielski 
857*b1cdbd2cSJim Jagielski 
858*b1cdbd2cSJim Jagielski IMPL_LINK_INLINE_START( SwIndexMarkDlg, PrevSameHdl, Button *, EMPTYARG )
859*b1cdbd2cSJim Jagielski {
860*b1cdbd2cSJim Jagielski 	InsertUpdate();
861*b1cdbd2cSJim Jagielski 	pTOXMgr->PrevTOXMark(sal_True);
862*b1cdbd2cSJim Jagielski 	UpdateDialog();
863*b1cdbd2cSJim Jagielski 
864*b1cdbd2cSJim Jagielski 	return 0;
865*b1cdbd2cSJim Jagielski }
IMPL_LINK_INLINE_END(SwIndexMarkDlg,PrevSameHdl,Button *,EMPTYARG)866*b1cdbd2cSJim Jagielski IMPL_LINK_INLINE_END( SwIndexMarkDlg, PrevSameHdl, Button *, EMPTYARG )
867*b1cdbd2cSJim Jagielski 
868*b1cdbd2cSJim Jagielski 
869*b1cdbd2cSJim Jagielski IMPL_LINK( SwIndexMarkDlg, DelHdl, Button *, EMPTYARG )
870*b1cdbd2cSJim Jagielski {
871*b1cdbd2cSJim Jagielski 	bDel = sal_True;
872*b1cdbd2cSJim Jagielski 	InsertUpdate();
873*b1cdbd2cSJim Jagielski 	bDel = sal_False;
874*b1cdbd2cSJim Jagielski 
875*b1cdbd2cSJim Jagielski 	if(pTOXMgr->GetCurTOXMark())
876*b1cdbd2cSJim Jagielski 		UpdateDialog();
877*b1cdbd2cSJim Jagielski 	else
878*b1cdbd2cSJim Jagielski 	{
879*b1cdbd2cSJim Jagielski 		CloseHdl(&aCancelBT);
880*b1cdbd2cSJim Jagielski 		SfxViewFrame::Current()->GetBindings().Invalidate(FN_EDIT_IDX_ENTRY_DLG);
881*b1cdbd2cSJim Jagielski 	}
882*b1cdbd2cSJim Jagielski 	return 0;
883*b1cdbd2cSJim Jagielski }
884*b1cdbd2cSJim Jagielski 
885*b1cdbd2cSJim Jagielski /*--------------------------------------------------------------------
886*b1cdbd2cSJim Jagielski 	 Beschreibung: Dialoganzeige erneuern
887*b1cdbd2cSJim Jagielski  --------------------------------------------------------------------*/
888*b1cdbd2cSJim Jagielski 
889*b1cdbd2cSJim Jagielski 
UpdateDialog()890*b1cdbd2cSJim Jagielski void SwIndexMarkDlg::UpdateDialog()
891*b1cdbd2cSJim Jagielski {
892*b1cdbd2cSJim Jagielski 	DBG_ASSERT(pSh && pTOXMgr, "Shell nicht da?");
893*b1cdbd2cSJim Jagielski 	SwTOXMark* pMark = pTOXMgr->GetCurTOXMark();
894*b1cdbd2cSJim Jagielski 	ASSERT(pMark, "Keine aktuelle Markierung");
895*b1cdbd2cSJim Jagielski 	if(!pMark)
896*b1cdbd2cSJim Jagielski 		return;
897*b1cdbd2cSJim Jagielski 
898*b1cdbd2cSJim Jagielski 	ViewShell::SetCareWin( GetParent() );
899*b1cdbd2cSJim Jagielski 
900*b1cdbd2cSJim Jagielski 	aOrgStr = pMark->GetText();
901*b1cdbd2cSJim Jagielski 	aEntryED.SetText(aOrgStr);
902*b1cdbd2cSJim Jagielski 
903*b1cdbd2cSJim Jagielski 	// Verzeichnistyp setzen
904*b1cdbd2cSJim Jagielski 	sal_Bool bLevelEnable = sal_True,
905*b1cdbd2cSJim Jagielski 		 bKeyEnable   = sal_False,
906*b1cdbd2cSJim Jagielski 		 bKey2Enable  = sal_False,
907*b1cdbd2cSJim Jagielski 		 bEntryHasText	= sal_False,
908*b1cdbd2cSJim Jagielski 		 bKey1HasText	= sal_False,
909*b1cdbd2cSJim Jagielski 		 bKey2HasText	= sal_False;
910*b1cdbd2cSJim Jagielski 
911*b1cdbd2cSJim Jagielski 	TOXTypes eCurType = pMark->GetTOXType()->GetType();
912*b1cdbd2cSJim Jagielski 	if(TOX_INDEX == eCurType)
913*b1cdbd2cSJim Jagielski 	{
914*b1cdbd2cSJim Jagielski 		bLevelEnable = sal_False;
915*b1cdbd2cSJim Jagielski 		bKeyEnable = sal_True;
916*b1cdbd2cSJim Jagielski 		bKey1HasText = bKey2Enable = 0 != pMark->GetPrimaryKey().Len();
917*b1cdbd2cSJim Jagielski 		bKey2HasText = 0 != pMark->GetSecondaryKey().Len();
918*b1cdbd2cSJim Jagielski 		bEntryHasText = 0 != pMark->GetText().Len();
919*b1cdbd2cSJim Jagielski 		aKeyDCB.SetText( pMark->GetPrimaryKey() );
920*b1cdbd2cSJim Jagielski 		aKey2DCB.SetText( pMark->GetSecondaryKey() );
921*b1cdbd2cSJim Jagielski 		aPhoneticED0.SetText( pMark->GetTextReading() );
922*b1cdbd2cSJim Jagielski 		aPhoneticED1.SetText( pMark->GetPrimaryKeyReading() );
923*b1cdbd2cSJim Jagielski 		aPhoneticED2.SetText( pMark->GetSecondaryKeyReading() );
924*b1cdbd2cSJim Jagielski 		aMainEntryCB.Check(pMark->IsMainEntry());
925*b1cdbd2cSJim Jagielski 	}
926*b1cdbd2cSJim Jagielski 	else if(TOX_CONTENT == eCurType || TOX_USER == eCurType)
927*b1cdbd2cSJim Jagielski 	{
928*b1cdbd2cSJim Jagielski 		aLevelED.SetValue(aLevelED.Normalize(pMark->GetLevel()));
929*b1cdbd2cSJim Jagielski 	}
930*b1cdbd2cSJim Jagielski 	aKeyFT.Enable(bKeyEnable);
931*b1cdbd2cSJim Jagielski 	aKeyDCB.Enable(bKeyEnable);
932*b1cdbd2cSJim Jagielski 	aLevelED.SetMax(MAXLEVEL);
933*b1cdbd2cSJim Jagielski 	aLevelFT.Show(bLevelEnable);
934*b1cdbd2cSJim Jagielski 	aLevelED.Show(bLevelEnable);
935*b1cdbd2cSJim Jagielski 	aMainEntryCB.Show(!bLevelEnable);
936*b1cdbd2cSJim Jagielski 	aKey2FT.Enable(bKey2Enable);
937*b1cdbd2cSJim Jagielski 	aKey2DCB.Enable(bKey2Enable);
938*b1cdbd2cSJim Jagielski 
939*b1cdbd2cSJim Jagielski 	UpdateLanguageDependenciesForPhoneticReading();
940*b1cdbd2cSJim Jagielski 	aPhoneticFT0.Enable(bKeyEnable&&bEntryHasText&&bIsPhoneticReadingEnabled);
941*b1cdbd2cSJim Jagielski 	aPhoneticED0.Enable(bKeyEnable&&bEntryHasText&&bIsPhoneticReadingEnabled);
942*b1cdbd2cSJim Jagielski 	aPhoneticFT1.Enable(bKeyEnable&&bKey1HasText&&bIsPhoneticReadingEnabled);
943*b1cdbd2cSJim Jagielski 	aPhoneticED1.Enable(bKeyEnable&&bKey1HasText&&bIsPhoneticReadingEnabled);
944*b1cdbd2cSJim Jagielski 	aPhoneticFT2.Enable(bKeyEnable&&bKey2HasText&&bIsPhoneticReadingEnabled);
945*b1cdbd2cSJim Jagielski 	aPhoneticED2.Enable(bKeyEnable&&bKey2HasText&&bIsPhoneticReadingEnabled);
946*b1cdbd2cSJim Jagielski 
947*b1cdbd2cSJim Jagielski 	// Verzeichnis-Typ setzen
948*b1cdbd2cSJim Jagielski 	aTypeDCB.SelectEntry(pMark->GetTOXType()->GetTypeName());
949*b1cdbd2cSJim Jagielski 
950*b1cdbd2cSJim Jagielski 	// Next - Prev - Buttons setzen
951*b1cdbd2cSJim Jagielski 	pSh->SttCrsrMove();
952*b1cdbd2cSJim Jagielski 	if( aPrevBT.IsVisible() )
953*b1cdbd2cSJim Jagielski 	{
954*b1cdbd2cSJim Jagielski 		const SwTOXMark* pMoveMark = &pSh->GotoTOXMark( *pMark, TOX_PRV );
955*b1cdbd2cSJim Jagielski 		if( pMoveMark != pMark )
956*b1cdbd2cSJim Jagielski 			pSh->GotoTOXMark( *pMoveMark, TOX_NXT );
957*b1cdbd2cSJim Jagielski 		aPrevBT.Enable( pMoveMark != pMark );
958*b1cdbd2cSJim Jagielski 		pMoveMark = &pSh->GotoTOXMark( *pMark, TOX_NXT );
959*b1cdbd2cSJim Jagielski 		if( pMoveMark != pMark )
960*b1cdbd2cSJim Jagielski 			pSh->GotoTOXMark( *pMoveMark, TOX_PRV );
961*b1cdbd2cSJim Jagielski 		aNextBT.Enable( pMoveMark != pMark );
962*b1cdbd2cSJim Jagielski 	}
963*b1cdbd2cSJim Jagielski 
964*b1cdbd2cSJim Jagielski 	if( aPrevSameBT.IsVisible() )
965*b1cdbd2cSJim Jagielski 	{
966*b1cdbd2cSJim Jagielski 		const SwTOXMark* pMoveMark = &pSh->GotoTOXMark( *pMark, TOX_SAME_PRV );
967*b1cdbd2cSJim Jagielski 		if( pMoveMark != pMark )
968*b1cdbd2cSJim Jagielski 			pSh->GotoTOXMark( *pMoveMark, TOX_SAME_NXT );
969*b1cdbd2cSJim Jagielski 		aPrevSameBT.Enable( pMoveMark != pMark );
970*b1cdbd2cSJim Jagielski 		pMoveMark = &pSh->GotoTOXMark( *pMark, TOX_SAME_NXT );
971*b1cdbd2cSJim Jagielski 		if( pMoveMark != pMark )
972*b1cdbd2cSJim Jagielski 			pSh->GotoTOXMark( *pMoveMark, TOX_SAME_PRV );
973*b1cdbd2cSJim Jagielski 		aNextSameBT.Enable( pMoveMark != pMark );
974*b1cdbd2cSJim Jagielski 	}
975*b1cdbd2cSJim Jagielski 
976*b1cdbd2cSJim Jagielski 	sal_Bool bEnable = !pSh->HasReadonlySel();
977*b1cdbd2cSJim Jagielski 	aOKBT.Enable( bEnable );
978*b1cdbd2cSJim Jagielski 	aDelBT.Enable( bEnable );
979*b1cdbd2cSJim Jagielski 	aEntryED.SetReadOnly( !bEnable );
980*b1cdbd2cSJim Jagielski 	aLevelED.SetReadOnly( !bEnable );
981*b1cdbd2cSJim Jagielski 	aKeyDCB.SetReadOnly( !bEnable );
982*b1cdbd2cSJim Jagielski 	aKey2DCB.SetReadOnly( !bEnable );
983*b1cdbd2cSJim Jagielski 
984*b1cdbd2cSJim Jagielski 	pSh->SelectTxtAttr( RES_TXTATR_TOXMARK, pMark->GetTxtTOXMark() );
985*b1cdbd2cSJim Jagielski 	// we need the point at the start of the attribut
986*b1cdbd2cSJim Jagielski 	pSh->SwapPam();
987*b1cdbd2cSJim Jagielski 
988*b1cdbd2cSJim Jagielski 	pSh->EndCrsrMove();
989*b1cdbd2cSJim Jagielski }
990*b1cdbd2cSJim Jagielski 
991*b1cdbd2cSJim Jagielski /*--------------------------------------------------------------------
992*b1cdbd2cSJim Jagielski 	 Remind wether the edit boxes for Phonetic reading are changed manually
993*b1cdbd2cSJim Jagielski  --------------------------------------------------------------------*/
994*b1cdbd2cSJim Jagielski 
IMPL_LINK(SwIndexMarkDlg,PhoneticEDModifyHdl,Edit *,pEdit)995*b1cdbd2cSJim Jagielski IMPL_LINK( SwIndexMarkDlg, PhoneticEDModifyHdl, Edit *, pEdit )
996*b1cdbd2cSJim Jagielski {
997*b1cdbd2cSJim Jagielski 	if(&aPhoneticED0 == pEdit)
998*b1cdbd2cSJim Jagielski 	{
999*b1cdbd2cSJim Jagielski 		bPhoneticED0_ChangedByUser = pEdit->GetText().Len()>0;
1000*b1cdbd2cSJim Jagielski 	}
1001*b1cdbd2cSJim Jagielski 	else if(&aPhoneticED1 == pEdit)
1002*b1cdbd2cSJim Jagielski 	{
1003*b1cdbd2cSJim Jagielski 		bPhoneticED1_ChangedByUser = pEdit->GetText().Len()>0;
1004*b1cdbd2cSJim Jagielski 	}
1005*b1cdbd2cSJim Jagielski 	else if(&aPhoneticED2 == pEdit)
1006*b1cdbd2cSJim Jagielski 	{
1007*b1cdbd2cSJim Jagielski 		bPhoneticED2_ChangedByUser = pEdit->GetText().Len()>0;
1008*b1cdbd2cSJim Jagielski 	}
1009*b1cdbd2cSJim Jagielski 	return 0;
1010*b1cdbd2cSJim Jagielski }
1011*b1cdbd2cSJim Jagielski 
1012*b1cdbd2cSJim Jagielski /*--------------------------------------------------------------------
1013*b1cdbd2cSJim Jagielski 	 Beschreibung: Enable Disable des 2. Schluessels
1014*b1cdbd2cSJim Jagielski  --------------------------------------------------------------------*/
1015*b1cdbd2cSJim Jagielski 
IMPL_LINK(SwIndexMarkDlg,KeyDCBModifyHdl,ComboBox *,pBox)1016*b1cdbd2cSJim Jagielski IMPL_LINK( SwIndexMarkDlg, KeyDCBModifyHdl, ComboBox *, pBox )
1017*b1cdbd2cSJim Jagielski {
1018*b1cdbd2cSJim Jagielski 	if(&aKeyDCB == pBox)
1019*b1cdbd2cSJim Jagielski 	{
1020*b1cdbd2cSJim Jagielski 		sal_Bool bEnable = pBox->GetText().Len() > 0;
1021*b1cdbd2cSJim Jagielski 		if(!bEnable)
1022*b1cdbd2cSJim Jagielski 		{
1023*b1cdbd2cSJim Jagielski 			aKey2DCB.SetText(aEmptyStr);
1024*b1cdbd2cSJim Jagielski 			aPhoneticED1.SetText(aEmptyStr);
1025*b1cdbd2cSJim Jagielski 			aPhoneticED2.SetText(aEmptyStr);
1026*b1cdbd2cSJim Jagielski 			bPhoneticED1_ChangedByUser = sal_False;
1027*b1cdbd2cSJim Jagielski 			bPhoneticED2_ChangedByUser = sal_False;
1028*b1cdbd2cSJim Jagielski 		}
1029*b1cdbd2cSJim Jagielski 		else
1030*b1cdbd2cSJim Jagielski 		{
1031*b1cdbd2cSJim Jagielski 			if(pBox->IsInDropDown())
1032*b1cdbd2cSJim Jagielski 			{
1033*b1cdbd2cSJim Jagielski 				//reset bPhoneticED1_ChangedByUser if a completly new string is selected
1034*b1cdbd2cSJim Jagielski 				bPhoneticED1_ChangedByUser = sal_False;
1035*b1cdbd2cSJim Jagielski 			}
1036*b1cdbd2cSJim Jagielski 			if(!bPhoneticED1_ChangedByUser)
1037*b1cdbd2cSJim Jagielski 				aPhoneticED1.SetText(GetDefaultPhoneticReading(pBox->GetText()));
1038*b1cdbd2cSJim Jagielski 		}
1039*b1cdbd2cSJim Jagielski 		aKey2DCB.Enable(bEnable);
1040*b1cdbd2cSJim Jagielski 		aKey2FT.Enable(bEnable);
1041*b1cdbd2cSJim Jagielski 	}
1042*b1cdbd2cSJim Jagielski 	else if(&aKey2DCB == pBox)
1043*b1cdbd2cSJim Jagielski 	{
1044*b1cdbd2cSJim Jagielski 		if(!(pBox->GetText().Len()>0))
1045*b1cdbd2cSJim Jagielski 		{
1046*b1cdbd2cSJim Jagielski 			aPhoneticED2.SetText(aEmptyStr);
1047*b1cdbd2cSJim Jagielski 			bPhoneticED2_ChangedByUser = sal_False;
1048*b1cdbd2cSJim Jagielski 		}
1049*b1cdbd2cSJim Jagielski 		else
1050*b1cdbd2cSJim Jagielski 		{
1051*b1cdbd2cSJim Jagielski 			if(pBox->IsInDropDown())
1052*b1cdbd2cSJim Jagielski 			{
1053*b1cdbd2cSJim Jagielski 				//reset bPhoneticED1_ChangedByUser if a completly new string is selected
1054*b1cdbd2cSJim Jagielski 				bPhoneticED2_ChangedByUser = sal_False;
1055*b1cdbd2cSJim Jagielski 			}
1056*b1cdbd2cSJim Jagielski 			if(!bPhoneticED2_ChangedByUser)
1057*b1cdbd2cSJim Jagielski 				aPhoneticED2.SetText(GetDefaultPhoneticReading(pBox->GetText()));
1058*b1cdbd2cSJim Jagielski 		}
1059*b1cdbd2cSJim Jagielski 	}
1060*b1cdbd2cSJim Jagielski 	sal_Bool	bKey1HasText	= (0 != aKeyDCB.GetText().Len());
1061*b1cdbd2cSJim Jagielski 	sal_Bool	bKey2HasText	= (0 != aKey2DCB.GetText().Len());
1062*b1cdbd2cSJim Jagielski 
1063*b1cdbd2cSJim Jagielski 	aPhoneticFT1.Enable(bKey1HasText&&bIsPhoneticReadingEnabled);
1064*b1cdbd2cSJim Jagielski 	aPhoneticED1.Enable(bKey1HasText&bIsPhoneticReadingEnabled);
1065*b1cdbd2cSJim Jagielski 	aPhoneticFT2.Enable(bKey2HasText&bIsPhoneticReadingEnabled);
1066*b1cdbd2cSJim Jagielski 	aPhoneticED2.Enable(bKey2HasText&bIsPhoneticReadingEnabled);
1067*b1cdbd2cSJim Jagielski 
1068*b1cdbd2cSJim Jagielski 	return 0;
1069*b1cdbd2cSJim Jagielski }
1070*b1cdbd2cSJim Jagielski 
1071*b1cdbd2cSJim Jagielski /*-----------------25.02.94 21:19-------------------
1072*b1cdbd2cSJim Jagielski  dtor ueberladen
1073*b1cdbd2cSJim Jagielski --------------------------------------------------*/
1074*b1cdbd2cSJim Jagielski 
1075*b1cdbd2cSJim Jagielski 
~SwIndexMarkDlg()1076*b1cdbd2cSJim Jagielski SwIndexMarkDlg::~SwIndexMarkDlg()
1077*b1cdbd2cSJim Jagielski {
1078*b1cdbd2cSJim Jagielski 	delete pTOXMgr;
1079*b1cdbd2cSJim Jagielski 	ViewShell::SetCareWin( 0 );
1080*b1cdbd2cSJim Jagielski }
1081*b1cdbd2cSJim Jagielski /* -----------------07.09.99 08:41-------------------
1082*b1cdbd2cSJim Jagielski 
1083*b1cdbd2cSJim Jagielski  --------------------------------------------------*/
ReInitDlg(SwWrtShell & rWrtShell,SwTOXMark * pCurTOXMark)1084*b1cdbd2cSJim Jagielski void    SwIndexMarkDlg::ReInitDlg(SwWrtShell& rWrtShell, SwTOXMark* pCurTOXMark)
1085*b1cdbd2cSJim Jagielski {
1086*b1cdbd2cSJim Jagielski 	pSh = &rWrtShell;
1087*b1cdbd2cSJim Jagielski 	delete pTOXMgr;
1088*b1cdbd2cSJim Jagielski 	pTOXMgr = new SwTOXMgr(pSh);
1089*b1cdbd2cSJim Jagielski     if(pCurTOXMark)
1090*b1cdbd2cSJim Jagielski     {
1091*b1cdbd2cSJim Jagielski         for(sal_uInt16 i = 0; i < pTOXMgr->GetTOXMarkCount(); i++)
1092*b1cdbd2cSJim Jagielski             if(pTOXMgr->GetTOXMark(i) == pCurTOXMark)
1093*b1cdbd2cSJim Jagielski             {
1094*b1cdbd2cSJim Jagielski                 pTOXMgr->SetCurTOXMark(i);
1095*b1cdbd2cSJim Jagielski                 break;
1096*b1cdbd2cSJim Jagielski             }
1097*b1cdbd2cSJim Jagielski     }
1098*b1cdbd2cSJim Jagielski     InitControls();
1099*b1cdbd2cSJim Jagielski }
1100*b1cdbd2cSJim Jagielski /* -----------------06.10.99 10:00-------------------
1101*b1cdbd2cSJim Jagielski 
1102*b1cdbd2cSJim Jagielski  --------------------------------------------------*/
SwIndexMarkFloatDlg(SfxBindings * _pBindings,SfxChildWindow * pChild,Window * pParent,SfxChildWinInfo * pInfo,sal_Bool bNew)1103*b1cdbd2cSJim Jagielski SwIndexMarkFloatDlg::SwIndexMarkFloatDlg(SfxBindings* _pBindings,
1104*b1cdbd2cSJim Jagielski 				   				SfxChildWindow* pChild,
1105*b1cdbd2cSJim Jagielski 				   				Window *pParent,
1106*b1cdbd2cSJim Jagielski 								SfxChildWinInfo* pInfo,
1107*b1cdbd2cSJim Jagielski 				   				sal_Bool bNew) :
1108*b1cdbd2cSJim Jagielski SfxModelessDialog(_pBindings, pChild, pParent, SvtCJKOptions().IsCJKFontEnabled()?SW_RES(DLG_INSIDXMARK_CJK):SW_RES(DLG_INSIDXMARK)),
1109*b1cdbd2cSJim Jagielski     aDlg(this, bNew, SW_RES(WIN_DLG), SvtCJKOptions().IsCJKFontEnabled()?DLG_INSIDXMARK_CJK:DLG_INSIDXMARK, *::GetActiveWrtShell())
1110*b1cdbd2cSJim Jagielski {
1111*b1cdbd2cSJim Jagielski 	FreeResource();
1112*b1cdbd2cSJim Jagielski     aDlg.ReInitDlg(*::GetActiveWrtShell());
1113*b1cdbd2cSJim Jagielski 	Initialize(pInfo);
1114*b1cdbd2cSJim Jagielski }
1115*b1cdbd2cSJim Jagielski /* -----------------06.10.99 10:27-------------------
1116*b1cdbd2cSJim Jagielski 
1117*b1cdbd2cSJim Jagielski  --------------------------------------------------*/
Activate()1118*b1cdbd2cSJim Jagielski void	SwIndexMarkFloatDlg::Activate()
1119*b1cdbd2cSJim Jagielski {
1120*b1cdbd2cSJim Jagielski 	SfxModelessDialog::Activate();
1121*b1cdbd2cSJim Jagielski 	aDlg.Activate();
1122*b1cdbd2cSJim Jagielski }
1123*b1cdbd2cSJim Jagielski 
ReInitDlg(SwWrtShell & rWrtShell)1124*b1cdbd2cSJim Jagielski void SwIndexMarkFloatDlg::ReInitDlg(SwWrtShell& rWrtShell)
1125*b1cdbd2cSJim Jagielski {
1126*b1cdbd2cSJim Jagielski 	aDlg.ReInitDlg( rWrtShell );
1127*b1cdbd2cSJim Jagielski }
1128*b1cdbd2cSJim Jagielski 
1129*b1cdbd2cSJim Jagielski /* -----------------06.10.99 10:35-------------------
1130*b1cdbd2cSJim Jagielski 
1131*b1cdbd2cSJim Jagielski  --------------------------------------------------*/
SwIndexMarkModalDlg(Window * pParent,SwWrtShell & rSh,SwTOXMark * pCurTOXMark)1132*b1cdbd2cSJim Jagielski SwIndexMarkModalDlg::SwIndexMarkModalDlg(Window *pParent, SwWrtShell& rSh, SwTOXMark* pCurTOXMark) :
1133*b1cdbd2cSJim Jagielski SvxStandardDialog(pParent, SvtCJKOptions().IsCJKFontEnabled()?SW_RES(DLG_EDIT_IDXMARK_CJK):SW_RES(DLG_EDIT_IDXMARK)),
1134*b1cdbd2cSJim Jagielski     aDlg(this, sal_False, SW_RES(WIN_DLG), SvtCJKOptions().IsCJKFontEnabled()?DLG_EDIT_IDXMARK_CJK:DLG_EDIT_IDXMARK, rSh)
1135*b1cdbd2cSJim Jagielski {
1136*b1cdbd2cSJim Jagielski 	FreeResource();
1137*b1cdbd2cSJim Jagielski     aDlg.ReInitDlg(rSh, pCurTOXMark);
1138*b1cdbd2cSJim Jagielski }
1139*b1cdbd2cSJim Jagielski /* -----------------06.10.99 10:46-------------------
1140*b1cdbd2cSJim Jagielski 
1141*b1cdbd2cSJim Jagielski  --------------------------------------------------*/
Apply()1142*b1cdbd2cSJim Jagielski void	SwIndexMarkModalDlg::Apply()
1143*b1cdbd2cSJim Jagielski {
1144*b1cdbd2cSJim Jagielski 	aDlg.Apply();
1145*b1cdbd2cSJim Jagielski }
1146*b1cdbd2cSJim Jagielski /* -----------------16.09.99 14:19-------------------
1147*b1cdbd2cSJim Jagielski 
1148*b1cdbd2cSJim Jagielski  --------------------------------------------------*/
1149*b1cdbd2cSJim Jagielski class SwCreateAuthEntryDlg_Impl : public ModalDialog
1150*b1cdbd2cSJim Jagielski {
1151*b1cdbd2cSJim Jagielski     FixedLine       aEntriesFL;
1152*b1cdbd2cSJim Jagielski 
1153*b1cdbd2cSJim Jagielski 	FixedText*		pFixedTexts[AUTH_FIELD_END];
1154*b1cdbd2cSJim Jagielski 	ListBox*		pTypeListBox;
1155*b1cdbd2cSJim Jagielski 	ComboBox*		pIdentifierBox;
1156*b1cdbd2cSJim Jagielski 	Edit*			pEdits[AUTH_FIELD_END];
1157*b1cdbd2cSJim Jagielski 
1158*b1cdbd2cSJim Jagielski     OKButton        aOKBT;
1159*b1cdbd2cSJim Jagielski 	CancelButton 	aCancelBT;
1160*b1cdbd2cSJim Jagielski 	HelpButton 		aHelpBT;
1161*b1cdbd2cSJim Jagielski 
1162*b1cdbd2cSJim Jagielski 	Link			aShortNameCheckLink;
1163*b1cdbd2cSJim Jagielski 
1164*b1cdbd2cSJim Jagielski 	SwWrtShell& 	rWrtSh;
1165*b1cdbd2cSJim Jagielski 
1166*b1cdbd2cSJim Jagielski 	sal_Bool			m_bNewEntryMode;
1167*b1cdbd2cSJim Jagielski 	sal_Bool			m_bNameAllowed;
1168*b1cdbd2cSJim Jagielski 
1169*b1cdbd2cSJim Jagielski 	DECL_LINK(IdentifierHdl, ComboBox*);
1170*b1cdbd2cSJim Jagielski 	DECL_LINK(ShortNameHdl, Edit*);
1171*b1cdbd2cSJim Jagielski 	DECL_LINK(EnableHdl, ListBox* pBox);
1172*b1cdbd2cSJim Jagielski 
1173*b1cdbd2cSJim Jagielski public:
1174*b1cdbd2cSJim Jagielski 	SwCreateAuthEntryDlg_Impl(Window* pParent,
1175*b1cdbd2cSJim Jagielski 							const String pFields[],
1176*b1cdbd2cSJim Jagielski 							SwWrtShell& rSh,
1177*b1cdbd2cSJim Jagielski 							sal_Bool bNewEntry,
1178*b1cdbd2cSJim Jagielski 							sal_Bool bCreate);
1179*b1cdbd2cSJim Jagielski 	~SwCreateAuthEntryDlg_Impl();
1180*b1cdbd2cSJim Jagielski 
1181*b1cdbd2cSJim Jagielski 	String			GetEntryText(ToxAuthorityField eField) const;
1182*b1cdbd2cSJim Jagielski 
SetCheckNameHdl(const Link & rLink)1183*b1cdbd2cSJim Jagielski 	void			SetCheckNameHdl(const Link& rLink) {aShortNameCheckLink = rLink;}
1184*b1cdbd2cSJim Jagielski 
1185*b1cdbd2cSJim Jagielski };
1186*b1cdbd2cSJim Jagielski /*-- 15.09.99 08:43:24---------------------------------------------------
1187*b1cdbd2cSJim Jagielski 
1188*b1cdbd2cSJim Jagielski   -----------------------------------------------------------------------*/
1189*b1cdbd2cSJim Jagielski struct TextInfo
1190*b1cdbd2cSJim Jagielski {
1191*b1cdbd2cSJim Jagielski 	sal_uInt16 nToxField;
1192*b1cdbd2cSJim Jagielski 	const char* pHelpId;
1193*b1cdbd2cSJim Jagielski };
1194*b1cdbd2cSJim Jagielski 
1195*b1cdbd2cSJim Jagielski static const TextInfo aTextInfoArr[] =
1196*b1cdbd2cSJim Jagielski {
1197*b1cdbd2cSJim Jagielski 	{AUTH_FIELD_IDENTIFIER,      HID_AUTH_FIELD_IDENTIFIER      },
1198*b1cdbd2cSJim Jagielski 	{AUTH_FIELD_AUTHORITY_TYPE,  HID_AUTH_FIELD_AUTHORITY_TYPE  },
1199*b1cdbd2cSJim Jagielski 	{AUTH_FIELD_AUTHOR,          HID_AUTH_FIELD_AUTHOR          },
1200*b1cdbd2cSJim Jagielski 	{AUTH_FIELD_TITLE,           HID_AUTH_FIELD_TITLE           },
1201*b1cdbd2cSJim Jagielski 	{AUTH_FIELD_YEAR,            HID_AUTH_FIELD_YEAR            },
1202*b1cdbd2cSJim Jagielski 	{AUTH_FIELD_PUBLISHER,       HID_AUTH_FIELD_PUBLISHER       },
1203*b1cdbd2cSJim Jagielski 	{AUTH_FIELD_ADDRESS,         HID_AUTH_FIELD_ADDRESS         },
1204*b1cdbd2cSJim Jagielski 	{AUTH_FIELD_ISBN,            HID_AUTH_FIELD_ISBN            },
1205*b1cdbd2cSJim Jagielski 	{AUTH_FIELD_CHAPTER,         HID_AUTH_FIELD_CHAPTER         },
1206*b1cdbd2cSJim Jagielski 	{AUTH_FIELD_PAGES,           HID_AUTH_FIELD_PAGES           },
1207*b1cdbd2cSJim Jagielski 	{AUTH_FIELD_EDITOR,          HID_AUTH_FIELD_EDITOR          },
1208*b1cdbd2cSJim Jagielski 	{AUTH_FIELD_EDITION,         HID_AUTH_FIELD_EDITION         },
1209*b1cdbd2cSJim Jagielski 	{AUTH_FIELD_BOOKTITLE,       HID_AUTH_FIELD_BOOKTITLE       },
1210*b1cdbd2cSJim Jagielski 	{AUTH_FIELD_VOLUME,          HID_AUTH_FIELD_VOLUME          },
1211*b1cdbd2cSJim Jagielski 	{AUTH_FIELD_HOWPUBLISHED,    HID_AUTH_FIELD_HOWPUBLISHED    },
1212*b1cdbd2cSJim Jagielski 	{AUTH_FIELD_ORGANIZATIONS,   HID_AUTH_FIELD_ORGANIZATIONS   },
1213*b1cdbd2cSJim Jagielski 	{AUTH_FIELD_INSTITUTION,     HID_AUTH_FIELD_INSTITUTION     },
1214*b1cdbd2cSJim Jagielski 	{AUTH_FIELD_SCHOOL,          HID_AUTH_FIELD_SCHOOL          },
1215*b1cdbd2cSJim Jagielski 	{AUTH_FIELD_REPORT_TYPE,     HID_AUTH_FIELD_REPORT_TYPE     },
1216*b1cdbd2cSJim Jagielski 	{AUTH_FIELD_MONTH,           HID_AUTH_FIELD_MONTH           },
1217*b1cdbd2cSJim Jagielski 	{AUTH_FIELD_JOURNAL,         HID_AUTH_FIELD_JOURNAL         },
1218*b1cdbd2cSJim Jagielski 	{AUTH_FIELD_NUMBER,          HID_AUTH_FIELD_NUMBER          },
1219*b1cdbd2cSJim Jagielski 	{AUTH_FIELD_SERIES,          HID_AUTH_FIELD_SERIES          },
1220*b1cdbd2cSJim Jagielski 	{AUTH_FIELD_ANNOTE,          HID_AUTH_FIELD_ANNOTE          },
1221*b1cdbd2cSJim Jagielski 	{AUTH_FIELD_NOTE,            HID_AUTH_FIELD_NOTE            },
1222*b1cdbd2cSJim Jagielski 	{AUTH_FIELD_URL,             HID_AUTH_FIELD_URL             },
1223*b1cdbd2cSJim Jagielski 	{AUTH_FIELD_CUSTOM1,         HID_AUTH_FIELD_CUSTOM1         },
1224*b1cdbd2cSJim Jagielski 	{AUTH_FIELD_CUSTOM2,         HID_AUTH_FIELD_CUSTOM2         },
1225*b1cdbd2cSJim Jagielski 	{AUTH_FIELD_CUSTOM3,         HID_AUTH_FIELD_CUSTOM3         },
1226*b1cdbd2cSJim Jagielski 	{AUTH_FIELD_CUSTOM4,         HID_AUTH_FIELD_CUSTOM4         },
1227*b1cdbd2cSJim Jagielski 	{AUTH_FIELD_CUSTOM5,         HID_AUTH_FIELD_CUSTOM5         }
1228*b1cdbd2cSJim Jagielski };
1229*b1cdbd2cSJim Jagielski 
1230*b1cdbd2cSJim Jagielski sal_Bool SwAuthMarkDlg::bIsFromComponent = sal_True;
1231*b1cdbd2cSJim Jagielski 
SwAuthMarkDlg(Window * pParent,const ResId & rResId,sal_Bool bNewDlg)1232*b1cdbd2cSJim Jagielski SwAuthMarkDlg::SwAuthMarkDlg(  Window *pParent,
1233*b1cdbd2cSJim Jagielski 							   const ResId& rResId,
1234*b1cdbd2cSJim Jagielski 							   sal_Bool bNewDlg) :
1235*b1cdbd2cSJim Jagielski 	Window(pParent, rResId),
1236*b1cdbd2cSJim Jagielski     aFromComponentRB(   this, ResId(RB_FROMCOMPONENT, *rResId.GetResMgr()   )),
1237*b1cdbd2cSJim Jagielski     aFromDocContentRB(  this, ResId(RB_FROMDOCCONTENT, *rResId.GetResMgr()  )),
1238*b1cdbd2cSJim Jagielski 
1239*b1cdbd2cSJim Jagielski     aAuthorFT(  this, ResId(FT_AUTHOR, *rResId.GetResMgr()       )),
1240*b1cdbd2cSJim Jagielski     aAuthorFI(  this, ResId(FI_AUTHOR, *rResId.GetResMgr()   )),
1241*b1cdbd2cSJim Jagielski     aTitleFT(   this, ResId(FT_TITLE, *rResId.GetResMgr()    )),
1242*b1cdbd2cSJim Jagielski     aTitleFI(   this, ResId(FI_TITLE, *rResId.GetResMgr()    )),
1243*b1cdbd2cSJim Jagielski     aEntryFT(   this, ResId(FT_ENTRY, *rResId.GetResMgr()    )),
1244*b1cdbd2cSJim Jagielski     aEntryED(   this, ResId(ED_ENTRY, *rResId.GetResMgr()   )),
1245*b1cdbd2cSJim Jagielski     aEntryLB(   this, ResId(LB_ENTRY, *rResId.GetResMgr()   )),
1246*b1cdbd2cSJim Jagielski 
1247*b1cdbd2cSJim Jagielski     aEntryFL(   this, ResId(FL_ENTRY, *rResId.GetResMgr()    )),
1248*b1cdbd2cSJim Jagielski 
1249*b1cdbd2cSJim Jagielski     aOKBT(      this, ResId(PB_OK, *rResId.GetResMgr()       )),
1250*b1cdbd2cSJim Jagielski     aCancelBT(  this, ResId(PB_CANCEL, *rResId.GetResMgr()  )),
1251*b1cdbd2cSJim Jagielski     aHelpBT(    this, ResId(PB_HELP, *rResId.GetResMgr()    )),
1252*b1cdbd2cSJim Jagielski     aCreateEntryPB(this,ResId(PB_CREATEENTRY, *rResId.GetResMgr())),
1253*b1cdbd2cSJim Jagielski     aEditEntryPB(this,  ResId(PB_EDITENTRY, *rResId.GetResMgr())),
1254*b1cdbd2cSJim Jagielski 
1255*b1cdbd2cSJim Jagielski     sChangeST(  ResId(ST_CHANGE, *rResId.GetResMgr())),
1256*b1cdbd2cSJim Jagielski     bNewEntry(bNewDlg),
1257*b1cdbd2cSJim Jagielski     bBibAccessInitialized(sal_False),
1258*b1cdbd2cSJim Jagielski 
1259*b1cdbd2cSJim Jagielski     pSh(0)
1260*b1cdbd2cSJim Jagielski {
1261*b1cdbd2cSJim Jagielski 	SetStyle(GetStyle()|WB_DIALOGCONTROL);
1262*b1cdbd2cSJim Jagielski 	FreeResource();
1263*b1cdbd2cSJim Jagielski 
1264*b1cdbd2cSJim Jagielski 	aFromComponentRB.SetHelpId(HID_AUTH_MARK_DLG_FROM_COMP_RB);
1265*b1cdbd2cSJim Jagielski 	aFromDocContentRB.SetHelpId(HID_AUTH_MARK_DLG_FROM_DOC_RB );
1266*b1cdbd2cSJim Jagielski 	aEntryED.SetHelpId(HID_AUTH_MARK_DLG_ID_LISTBOX           );
1267*b1cdbd2cSJim Jagielski 	aEntryLB.SetHelpId(HID_AUTH_MARK_DLG_ID_LISTBOX           );
1268*b1cdbd2cSJim Jagielski 
1269*b1cdbd2cSJim Jagielski 	aFromComponentRB.Show(bNewEntry);
1270*b1cdbd2cSJim Jagielski 	aFromDocContentRB.Show(bNewEntry);
1271*b1cdbd2cSJim Jagielski 	aFromComponentRB.Check(bIsFromComponent);
1272*b1cdbd2cSJim Jagielski 	aFromDocContentRB.Check(!bIsFromComponent);
1273*b1cdbd2cSJim Jagielski 
1274*b1cdbd2cSJim Jagielski 	aOKBT		.SetHelpId(HID_INSERT_AUTH_MRK_OK   );
1275*b1cdbd2cSJim Jagielski 	aCancelBT	.SetHelpId(HID_INSERT_AUTH_MRK_CLOSE);
1276*b1cdbd2cSJim Jagielski 	aEntryED		.SetHelpId(HID_INSERT_AUTH_MRK_ENTRY		);
1277*b1cdbd2cSJim Jagielski 	aCreateEntryPB  .SetHelpId(HID_INSERT_AUTH_MRK_CREATE_ENTRY	);
1278*b1cdbd2cSJim Jagielski 	aEditEntryPB    .SetHelpId(HID_INSERT_AUTH_MRK_EDIT_ENTRY	);
1279*b1cdbd2cSJim Jagielski 
1280*b1cdbd2cSJim Jagielski 	aOKBT.SetClickHdl(LINK(this,SwAuthMarkDlg, InsertHdl));
1281*b1cdbd2cSJim Jagielski 	aCancelBT.SetClickHdl(LINK(this,SwAuthMarkDlg, CloseHdl));
1282*b1cdbd2cSJim Jagielski 	aCreateEntryPB.SetClickHdl(LINK(this,SwAuthMarkDlg, CreateEntryHdl));
1283*b1cdbd2cSJim Jagielski 	aEditEntryPB.SetClickHdl(LINK(this,SwAuthMarkDlg, CreateEntryHdl));
1284*b1cdbd2cSJim Jagielski 	aFromComponentRB.SetClickHdl(LINK(this,SwAuthMarkDlg, ChangeSourceHdl));
1285*b1cdbd2cSJim Jagielski 	aFromDocContentRB.SetClickHdl(LINK(this,SwAuthMarkDlg, ChangeSourceHdl));
1286*b1cdbd2cSJim Jagielski     aEntryED.SetModifyHdl(LINK(this,SwAuthMarkDlg, EditModifyHdl));
1287*b1cdbd2cSJim Jagielski 
1288*b1cdbd2cSJim Jagielski 	GetParent()->SetText(String(SW_RES(
1289*b1cdbd2cSJim Jagielski 					bNewEntry ? STR_AUTHMRK_INSERT : STR_AUTHMRK_EDIT)));
1290*b1cdbd2cSJim Jagielski 	aEntryED.Show(!bNewEntry);
1291*b1cdbd2cSJim Jagielski 	aEntryLB.Show(bNewEntry);
1292*b1cdbd2cSJim Jagielski 	if(!bNewEntry)
1293*b1cdbd2cSJim Jagielski 	{
1294*b1cdbd2cSJim Jagielski 		aOKBT.SetText(sChangeST);
1295*b1cdbd2cSJim Jagielski 	}
1296*b1cdbd2cSJim Jagielski 	else
1297*b1cdbd2cSJim Jagielski 	{
1298*b1cdbd2cSJim Jagielski 		aEntryLB.SetSelectHdl(LINK(this, SwAuthMarkDlg, CompEntryHdl));
1299*b1cdbd2cSJim Jagielski 	}
1300*b1cdbd2cSJim Jagielski }
1301*b1cdbd2cSJim Jagielski /*-- 15.09.99 08:43:25---------------------------------------------------
1302*b1cdbd2cSJim Jagielski 
1303*b1cdbd2cSJim Jagielski   -----------------------------------------------------------------------*/
~SwAuthMarkDlg()1304*b1cdbd2cSJim Jagielski SwAuthMarkDlg::~SwAuthMarkDlg()
1305*b1cdbd2cSJim Jagielski {
1306*b1cdbd2cSJim Jagielski }
1307*b1cdbd2cSJim Jagielski /*-- 15.09.99 08:43:25---------------------------------------------------
1308*b1cdbd2cSJim Jagielski 
1309*b1cdbd2cSJim Jagielski   -----------------------------------------------------------------------*/
ReInitDlg(SwWrtShell & rWrtShell)1310*b1cdbd2cSJim Jagielski void	SwAuthMarkDlg::ReInitDlg(SwWrtShell& rWrtShell)
1311*b1cdbd2cSJim Jagielski {
1312*b1cdbd2cSJim Jagielski 	pSh = &rWrtShell;
1313*b1cdbd2cSJim Jagielski 	InitControls();
1314*b1cdbd2cSJim Jagielski }
1315*b1cdbd2cSJim Jagielski /* -----------------15.09.99 08:57-------------------
1316*b1cdbd2cSJim Jagielski 
1317*b1cdbd2cSJim Jagielski  --------------------------------------------------*/
IMPL_LINK(SwAuthMarkDlg,CloseHdl,PushButton *,EMPTYARG)1318*b1cdbd2cSJim Jagielski IMPL_LINK( SwAuthMarkDlg, CloseHdl, PushButton *, EMPTYARG )
1319*b1cdbd2cSJim Jagielski {
1320*b1cdbd2cSJim Jagielski 	if(bNewEntry)
1321*b1cdbd2cSJim Jagielski 	{
1322*b1cdbd2cSJim Jagielski 		sal_uInt16 nSlot = FN_INSERT_AUTH_ENTRY_DLG;
1323*b1cdbd2cSJim Jagielski 		SfxViewFrame::Current()->GetDispatcher()->Execute(nSlot,
1324*b1cdbd2cSJim Jagielski 					SFX_CALLMODE_ASYNCHRON|SFX_CALLMODE_RECORD);
1325*b1cdbd2cSJim Jagielski 	}
1326*b1cdbd2cSJim Jagielski 	else
1327*b1cdbd2cSJim Jagielski 	{
1328*b1cdbd2cSJim Jagielski 		((SwAuthMarkModalDlg*)GetParent())->EndDialog(RET_CANCEL);
1329*b1cdbd2cSJim Jagielski 	}
1330*b1cdbd2cSJim Jagielski 	return 0;
1331*b1cdbd2cSJim Jagielski }
1332*b1cdbd2cSJim Jagielski /* -----------------06.12.99 13:54-------------------
1333*b1cdbd2cSJim Jagielski 
1334*b1cdbd2cSJim Jagielski  --------------------------------------------------*/
lcl_FindColumnEntry(const beans::PropertyValue * pFields,sal_Int32 nLen,const String & rColumnTitle)1335*b1cdbd2cSJim Jagielski static String lcl_FindColumnEntry(const beans::PropertyValue* pFields, sal_Int32 nLen, const String& rColumnTitle)
1336*b1cdbd2cSJim Jagielski {
1337*b1cdbd2cSJim Jagielski 	String sRet;
1338*b1cdbd2cSJim Jagielski 	OUString uColumnTitle = rColumnTitle;
1339*b1cdbd2cSJim Jagielski     for(sal_uInt16 i = 0; i < nLen; i++)
1340*b1cdbd2cSJim Jagielski 	{
1341*b1cdbd2cSJim Jagielski         OUString uTmp;
1342*b1cdbd2cSJim Jagielski         if(pFields[i].Name == uColumnTitle &&
1343*b1cdbd2cSJim Jagielski             (pFields[i].Value >>= uTmp))
1344*b1cdbd2cSJim Jagielski 		{
1345*b1cdbd2cSJim Jagielski 			sRet = String(uTmp);
1346*b1cdbd2cSJim Jagielski 			break;
1347*b1cdbd2cSJim Jagielski 		}
1348*b1cdbd2cSJim Jagielski 	}
1349*b1cdbd2cSJim Jagielski 	return sRet;
1350*b1cdbd2cSJim Jagielski }
1351*b1cdbd2cSJim Jagielski /* -----------------------------07.12.99 15:39--------------------------------
1352*b1cdbd2cSJim Jagielski 
1353*b1cdbd2cSJim Jagielski  ---------------------------------------------------------------------------*/
IMPL_LINK(SwAuthMarkDlg,CompEntryHdl,ListBox *,pBox)1354*b1cdbd2cSJim Jagielski IMPL_LINK( SwAuthMarkDlg, CompEntryHdl, ListBox*, pBox)
1355*b1cdbd2cSJim Jagielski {
1356*b1cdbd2cSJim Jagielski 	String sEntry(pBox->GetSelectEntry());
1357*b1cdbd2cSJim Jagielski 	if(bIsFromComponent)
1358*b1cdbd2cSJim Jagielski 	{
1359*b1cdbd2cSJim Jagielski 		if(xBibAccess.is() && sEntry.Len())
1360*b1cdbd2cSJim Jagielski 		{
1361*b1cdbd2cSJim Jagielski 			OUString uEntry(sEntry);
1362*b1cdbd2cSJim Jagielski 			if(xBibAccess->hasByName(uEntry))
1363*b1cdbd2cSJim Jagielski 			{
1364*b1cdbd2cSJim Jagielski 				uno::Any aEntry(xBibAccess->getByName(uEntry));
1365*b1cdbd2cSJim Jagielski                 uno::Sequence<beans::PropertyValue> aFieldProps;
1366*b1cdbd2cSJim Jagielski                 if(aEntry >>= aFieldProps)
1367*b1cdbd2cSJim Jagielski 				{
1368*b1cdbd2cSJim Jagielski 					const beans::PropertyValue* pProps = aFieldProps.getConstArray();
1369*b1cdbd2cSJim Jagielski                     for(sal_uInt16 i = 0; i < AUTH_FIELD_END && i < aFieldProps.getLength(); i++)
1370*b1cdbd2cSJim Jagielski 					{
1371*b1cdbd2cSJim Jagielski 						m_sFields[i] = lcl_FindColumnEntry(
1372*b1cdbd2cSJim Jagielski 								pProps, aFieldProps.getLength(), m_sColumnTitles[i]);
1373*b1cdbd2cSJim Jagielski 					}
1374*b1cdbd2cSJim Jagielski 				}
1375*b1cdbd2cSJim Jagielski 			}
1376*b1cdbd2cSJim Jagielski 		}
1377*b1cdbd2cSJim Jagielski 	}
1378*b1cdbd2cSJim Jagielski 	else
1379*b1cdbd2cSJim Jagielski 	{
1380*b1cdbd2cSJim Jagielski 		if(sEntry.Len())
1381*b1cdbd2cSJim Jagielski 		{
1382*b1cdbd2cSJim Jagielski 			const SwAuthorityFieldType* pFType = (const SwAuthorityFieldType*)
1383*b1cdbd2cSJim Jagielski 										pSh->GetFldType(RES_AUTHORITY, aEmptyStr);
1384*b1cdbd2cSJim Jagielski 			const SwAuthEntry* 	pEntry = pFType ? pFType->GetEntryByIdentifier(sEntry) : 0;
1385*b1cdbd2cSJim Jagielski 			for(sal_uInt16 i = 0; i < AUTH_FIELD_END; i++)
1386*b1cdbd2cSJim Jagielski 				m_sFields[i] = pEntry ?
1387*b1cdbd2cSJim Jagielski 							pEntry->GetAuthorField((ToxAuthorityField)i) : aEmptyStr;
1388*b1cdbd2cSJim Jagielski 		}
1389*b1cdbd2cSJim Jagielski 	}
1390*b1cdbd2cSJim Jagielski 	if(!pBox->GetSelectEntry().Len())
1391*b1cdbd2cSJim Jagielski 	{
1392*b1cdbd2cSJim Jagielski 		for(sal_uInt16 i = 0; i < AUTH_FIELD_END; i++)
1393*b1cdbd2cSJim Jagielski 			m_sFields[i] = aEmptyStr;
1394*b1cdbd2cSJim Jagielski 	}
1395*b1cdbd2cSJim Jagielski 	aAuthorFI.SetText(m_sFields[AUTH_FIELD_AUTHOR]);
1396*b1cdbd2cSJim Jagielski 	aTitleFI.SetText(m_sFields[AUTH_FIELD_TITLE]);
1397*b1cdbd2cSJim Jagielski 	return 0;
1398*b1cdbd2cSJim Jagielski }
1399*b1cdbd2cSJim Jagielski 
1400*b1cdbd2cSJim Jagielski /* -----------------15.09.99 08:57-------------------
1401*b1cdbd2cSJim Jagielski 
1402*b1cdbd2cSJim Jagielski  --------------------------------------------------*/
IMPL_LINK(SwAuthMarkDlg,InsertHdl,PushButton *,EMPTYARG)1403*b1cdbd2cSJim Jagielski IMPL_LINK( SwAuthMarkDlg, InsertHdl, PushButton *, EMPTYARG )
1404*b1cdbd2cSJim Jagielski {
1405*b1cdbd2cSJim Jagielski 	//insert or update the SwAuthorityField...
1406*b1cdbd2cSJim Jagielski 	if(pSh)
1407*b1cdbd2cSJim Jagielski 	{
1408*b1cdbd2cSJim Jagielski 		sal_Bool bDifferent = sal_False;
1409*b1cdbd2cSJim Jagielski 		DBG_ASSERT(m_sFields[AUTH_FIELD_IDENTIFIER].Len() , "No Id is set!");
1410*b1cdbd2cSJim Jagielski 		DBG_ASSERT(m_sFields[AUTH_FIELD_AUTHORITY_TYPE].Len() , "No authority type is set!");
1411*b1cdbd2cSJim Jagielski 		//check if the entry already exists with different content
1412*b1cdbd2cSJim Jagielski 		const SwAuthorityFieldType* pFType = (const SwAuthorityFieldType*)
1413*b1cdbd2cSJim Jagielski 										pSh->GetFldType(RES_AUTHORITY, aEmptyStr);
1414*b1cdbd2cSJim Jagielski 		const SwAuthEntry* 	pEntry = pFType ?
1415*b1cdbd2cSJim Jagielski 				pFType->GetEntryByIdentifier( m_sFields[AUTH_FIELD_IDENTIFIER])
1416*b1cdbd2cSJim Jagielski 				: 0;
1417*b1cdbd2cSJim Jagielski 		if(pEntry)
1418*b1cdbd2cSJim Jagielski 		{
1419*b1cdbd2cSJim Jagielski 			for(sal_uInt16 i = 0; i < AUTH_FIELD_END && !bDifferent; i++)
1420*b1cdbd2cSJim Jagielski 				bDifferent |= m_sFields[i] != pEntry->GetAuthorField((ToxAuthorityField)i);
1421*b1cdbd2cSJim Jagielski 			if(bDifferent)
1422*b1cdbd2cSJim Jagielski 			{
1423*b1cdbd2cSJim Jagielski 				QueryBox aQuery(this, SW_RES(DLG_CHANGE_AUTH_ENTRY));
1424*b1cdbd2cSJim Jagielski 				if(RET_YES != aQuery.Execute())
1425*b1cdbd2cSJim Jagielski 					return 0;
1426*b1cdbd2cSJim Jagielski 			}
1427*b1cdbd2cSJim Jagielski 		}
1428*b1cdbd2cSJim Jagielski 
1429*b1cdbd2cSJim Jagielski 		SwFldMgr aMgr(pSh);
1430*b1cdbd2cSJim Jagielski 		String sFields;
1431*b1cdbd2cSJim Jagielski 		for(sal_uInt16 i = 0; i < AUTH_FIELD_END; i++)
1432*b1cdbd2cSJim Jagielski 		{
1433*b1cdbd2cSJim Jagielski 			sFields += m_sFields[i];
1434*b1cdbd2cSJim Jagielski 			sFields += TOX_STYLE_DELIMITER;
1435*b1cdbd2cSJim Jagielski 		}
1436*b1cdbd2cSJim Jagielski 		if(bNewEntry)
1437*b1cdbd2cSJim Jagielski 		{
1438*b1cdbd2cSJim Jagielski 			if(bDifferent)
1439*b1cdbd2cSJim Jagielski 			{
1440*b1cdbd2cSJim Jagielski 				SwAuthEntry aNewData;
1441*b1cdbd2cSJim Jagielski 				for(sal_uInt16 i = 0; i < AUTH_FIELD_END; i++)
1442*b1cdbd2cSJim Jagielski 					aNewData.SetAuthorField((ToxAuthorityField)i, m_sFields[i]);
1443*b1cdbd2cSJim Jagielski 				pSh->ChangeAuthorityData(&aNewData);
1444*b1cdbd2cSJim Jagielski 			}
1445*b1cdbd2cSJim Jagielski             SwInsertFld_Data aData(TYP_AUTHORITY, 0, sFields, aEmptyStr, 0 );
1446*b1cdbd2cSJim Jagielski             aMgr.InsertFld( aData );
1447*b1cdbd2cSJim Jagielski 		}
1448*b1cdbd2cSJim Jagielski 		else if(aMgr.GetCurFld())
1449*b1cdbd2cSJim Jagielski 		{
1450*b1cdbd2cSJim Jagielski 			aMgr.UpdateCurFld(0, sFields, aEmptyStr);
1451*b1cdbd2cSJim Jagielski 		}
1452*b1cdbd2cSJim Jagielski 	}
1453*b1cdbd2cSJim Jagielski 	if(!bNewEntry)
1454*b1cdbd2cSJim Jagielski 		CloseHdl(0);
1455*b1cdbd2cSJim Jagielski 	return 0;
1456*b1cdbd2cSJim Jagielski }
1457*b1cdbd2cSJim Jagielski /* -----------------17.09.99 13:06-------------------
1458*b1cdbd2cSJim Jagielski 
1459*b1cdbd2cSJim Jagielski  --------------------------------------------------*/
IMPL_LINK(SwAuthMarkDlg,CreateEntryHdl,PushButton *,pButton)1460*b1cdbd2cSJim Jagielski IMPL_LINK(SwAuthMarkDlg, CreateEntryHdl, PushButton*, pButton)
1461*b1cdbd2cSJim Jagielski {
1462*b1cdbd2cSJim Jagielski 	sal_Bool bCreate = pButton == &aCreateEntryPB;
1463*b1cdbd2cSJim Jagielski 	String sOldId = m_sCreatedEntry[0];
1464*b1cdbd2cSJim Jagielski 	for(sal_uInt16 i = 0; i < AUTH_FIELD_END; i++)
1465*b1cdbd2cSJim Jagielski 		m_sCreatedEntry[i] = bCreate ? aEmptyStr : m_sFields[i];
1466*b1cdbd2cSJim Jagielski 	SwCreateAuthEntryDlg_Impl aDlg(pButton,
1467*b1cdbd2cSJim Jagielski 				bCreate ? m_sCreatedEntry : m_sFields,
1468*b1cdbd2cSJim Jagielski 				*pSh, bNewEntry, bCreate);
1469*b1cdbd2cSJim Jagielski 	if(bNewEntry)
1470*b1cdbd2cSJim Jagielski 	{
1471*b1cdbd2cSJim Jagielski 		aDlg.SetCheckNameHdl(LINK(this, SwAuthMarkDlg, IsEntryAllowedHdl));
1472*b1cdbd2cSJim Jagielski 	}
1473*b1cdbd2cSJim Jagielski 	if(RET_OK == aDlg.Execute())
1474*b1cdbd2cSJim Jagielski 	{
1475*b1cdbd2cSJim Jagielski 		if(bCreate && sOldId.Len())
1476*b1cdbd2cSJim Jagielski 		{
1477*b1cdbd2cSJim Jagielski 			aEntryLB.RemoveEntry(sOldId);
1478*b1cdbd2cSJim Jagielski 		}
1479*b1cdbd2cSJim Jagielski 		for(sal_uInt16 i = 0; i < AUTH_FIELD_END; i++)
1480*b1cdbd2cSJim Jagielski 		{
1481*b1cdbd2cSJim Jagielski 			m_sFields[i] = aDlg.GetEntryText((ToxAuthorityField)i);
1482*b1cdbd2cSJim Jagielski 			m_sCreatedEntry[i] = m_sFields[i];
1483*b1cdbd2cSJim Jagielski 		}
1484*b1cdbd2cSJim Jagielski 		if(bNewEntry && !aFromDocContentRB.IsChecked())
1485*b1cdbd2cSJim Jagielski 		{
1486*b1cdbd2cSJim Jagielski 			aFromDocContentRB.Check(sal_True);
1487*b1cdbd2cSJim Jagielski 			ChangeSourceHdl(&aFromDocContentRB);
1488*b1cdbd2cSJim Jagielski 		}
1489*b1cdbd2cSJim Jagielski 		if(bCreate)
1490*b1cdbd2cSJim Jagielski 		{
1491*b1cdbd2cSJim Jagielski 			DBG_ASSERT(LISTBOX_ENTRY_NOTFOUND ==
1492*b1cdbd2cSJim Jagielski 						aEntryLB.GetEntryPos(m_sFields[AUTH_FIELD_IDENTIFIER]),
1493*b1cdbd2cSJim Jagielski 						"entry exists!");
1494*b1cdbd2cSJim Jagielski 			aEntryLB.InsertEntry(m_sFields[AUTH_FIELD_IDENTIFIER]);
1495*b1cdbd2cSJim Jagielski 			aEntryLB.SelectEntry(m_sFields[AUTH_FIELD_IDENTIFIER]);
1496*b1cdbd2cSJim Jagielski 		}
1497*b1cdbd2cSJim Jagielski 		aEntryED.SetText(m_sFields[AUTH_FIELD_IDENTIFIER]);
1498*b1cdbd2cSJim Jagielski 		aAuthorFI.SetText(m_sFields[AUTH_FIELD_AUTHOR]);
1499*b1cdbd2cSJim Jagielski 		aTitleFI.SetText(m_sFields[AUTH_FIELD_TITLE]);
1500*b1cdbd2cSJim Jagielski         aOKBT.Enable();
1501*b1cdbd2cSJim Jagielski 	}
1502*b1cdbd2cSJim Jagielski 	return 0;
1503*b1cdbd2cSJim Jagielski }
1504*b1cdbd2cSJim Jagielski /* -----------------------------20.12.99 14:26--------------------------------
1505*b1cdbd2cSJim Jagielski 
1506*b1cdbd2cSJim Jagielski  ---------------------------------------------------------------------------*/
IMPL_LINK(SwAuthMarkDlg,ChangeSourceHdl,RadioButton *,pButton)1507*b1cdbd2cSJim Jagielski IMPL_LINK(SwAuthMarkDlg, ChangeSourceHdl, RadioButton*, pButton)
1508*b1cdbd2cSJim Jagielski {
1509*b1cdbd2cSJim Jagielski 	sal_Bool bFromComp = (pButton == &aFromComponentRB);
1510*b1cdbd2cSJim Jagielski 	bIsFromComponent = bFromComp;
1511*b1cdbd2cSJim Jagielski 	aCreateEntryPB.Enable(!bIsFromComponent);
1512*b1cdbd2cSJim Jagielski 	aEntryLB.Clear();
1513*b1cdbd2cSJim Jagielski 	if(bIsFromComponent)
1514*b1cdbd2cSJim Jagielski 	{
1515*b1cdbd2cSJim Jagielski 		if(!bBibAccessInitialized)
1516*b1cdbd2cSJim Jagielski 		{
1517*b1cdbd2cSJim Jagielski  			uno::Reference< lang::XMultiServiceFactory > xMSF = getProcessServiceFactory();
1518*b1cdbd2cSJim Jagielski 			xBibAccess = uno::Reference< container::XNameAccess > (
1519*b1cdbd2cSJim Jagielski 							xMSF->createInstance( C2U("com.sun.star.frame.Bibliography") ),
1520*b1cdbd2cSJim Jagielski 																		uno::UNO_QUERY );
1521*b1cdbd2cSJim Jagielski 			uno::Reference< beans::XPropertySet >  xPropSet(xBibAccess, uno::UNO_QUERY);
1522*b1cdbd2cSJim Jagielski 			OUString uPropName(C2U("BibliographyDataFieldNames"));
1523*b1cdbd2cSJim Jagielski 			if(xPropSet.is() && xPropSet->getPropertySetInfo()->hasPropertyByName(uPropName))
1524*b1cdbd2cSJim Jagielski 			{
1525*b1cdbd2cSJim Jagielski 				uno::Any aNames = xPropSet->getPropertyValue(uPropName);
1526*b1cdbd2cSJim Jagielski                 uno::Sequence<beans::PropertyValue> aSeq;
1527*b1cdbd2cSJim Jagielski                 if( aNames >>= aSeq)
1528*b1cdbd2cSJim Jagielski 				{
1529*b1cdbd2cSJim Jagielski                     const beans::PropertyValue* pArr = aSeq.getConstArray();
1530*b1cdbd2cSJim Jagielski 					for(sal_uInt16 i = 0; i < aSeq.getLength(); i++)
1531*b1cdbd2cSJim Jagielski 					{
1532*b1cdbd2cSJim Jagielski 						String sTitle = pArr[i].Name;
1533*b1cdbd2cSJim Jagielski 						sal_Int16 nField = 0;
1534*b1cdbd2cSJim Jagielski 						pArr[i].Value >>= nField;
1535*b1cdbd2cSJim Jagielski 						if(nField >= 0 && nField < AUTH_FIELD_END)
1536*b1cdbd2cSJim Jagielski 							m_sColumnTitles[nField] = sTitle;
1537*b1cdbd2cSJim Jagielski 					}
1538*b1cdbd2cSJim Jagielski 				}
1539*b1cdbd2cSJim Jagielski 			}
1540*b1cdbd2cSJim Jagielski 			bBibAccessInitialized = sal_True;
1541*b1cdbd2cSJim Jagielski 		}
1542*b1cdbd2cSJim Jagielski 		if(xBibAccess.is())
1543*b1cdbd2cSJim Jagielski 		{
1544*b1cdbd2cSJim Jagielski 			uno::Sequence<OUString> aIdentifiers = xBibAccess->getElementNames();
1545*b1cdbd2cSJim Jagielski 			const OUString* pNames = aIdentifiers.getConstArray();
1546*b1cdbd2cSJim Jagielski 			for(sal_uInt16 i = 0; i < aIdentifiers.getLength(); i++)
1547*b1cdbd2cSJim Jagielski 			{
1548*b1cdbd2cSJim Jagielski 				aEntryLB.InsertEntry(pNames[i]);
1549*b1cdbd2cSJim Jagielski 			}
1550*b1cdbd2cSJim Jagielski 		}
1551*b1cdbd2cSJim Jagielski 	}
1552*b1cdbd2cSJim Jagielski 	else
1553*b1cdbd2cSJim Jagielski 	{
1554*b1cdbd2cSJim Jagielski 		const SwAuthorityFieldType* pFType = (const SwAuthorityFieldType*)
1555*b1cdbd2cSJim Jagielski 									pSh->GetFldType(RES_AUTHORITY, aEmptyStr);
1556*b1cdbd2cSJim Jagielski 		if(pFType)
1557*b1cdbd2cSJim Jagielski 		{
1558*b1cdbd2cSJim Jagielski 			SvStringsDtor aIds;
1559*b1cdbd2cSJim Jagielski 			pFType->GetAllEntryIdentifiers(	aIds );
1560*b1cdbd2cSJim Jagielski 			for(sal_uInt16 n = 0; n < aIds.Count(); n++)
1561*b1cdbd2cSJim Jagielski 				aEntryLB.InsertEntry(*aIds.GetObject(n));
1562*b1cdbd2cSJim Jagielski 		}
1563*b1cdbd2cSJim Jagielski 		if(m_sCreatedEntry[AUTH_FIELD_IDENTIFIER].Len())
1564*b1cdbd2cSJim Jagielski 			aEntryLB.InsertEntry(m_sCreatedEntry[AUTH_FIELD_IDENTIFIER]);
1565*b1cdbd2cSJim Jagielski 	}
1566*b1cdbd2cSJim Jagielski 	aEntryLB.SelectEntryPos(0);
1567*b1cdbd2cSJim Jagielski 	CompEntryHdl(&aEntryLB);
1568*b1cdbd2cSJim Jagielski 	return 0;
1569*b1cdbd2cSJim Jagielski }
1570*b1cdbd2cSJim Jagielski /* -----------------15.10.2002 13:16-----------------
1571*b1cdbd2cSJim Jagielski  *
1572*b1cdbd2cSJim Jagielski  * --------------------------------------------------*/
IMPL_LINK(SwAuthMarkDlg,EditModifyHdl,Edit *,pEdit)1573*b1cdbd2cSJim Jagielski IMPL_LINK(SwAuthMarkDlg, EditModifyHdl, Edit*, pEdit)
1574*b1cdbd2cSJim Jagielski {
1575*b1cdbd2cSJim Jagielski     Link aAllowed = LINK(this, SwAuthMarkDlg, IsEntryAllowedHdl);
1576*b1cdbd2cSJim Jagielski     long nResult = aAllowed.Call(pEdit);
1577*b1cdbd2cSJim Jagielski     aOKBT.Enable(nResult > 0);
1578*b1cdbd2cSJim Jagielski     if(nResult)
1579*b1cdbd2cSJim Jagielski     {
1580*b1cdbd2cSJim Jagielski         String sEntry(pEdit->GetText());
1581*b1cdbd2cSJim Jagielski         m_sFields[AUTH_FIELD_IDENTIFIER] = sEntry;
1582*b1cdbd2cSJim Jagielski         m_sCreatedEntry[AUTH_FIELD_IDENTIFIER] = sEntry;
1583*b1cdbd2cSJim Jagielski     }
1584*b1cdbd2cSJim Jagielski     return 0;
1585*b1cdbd2cSJim Jagielski };
1586*b1cdbd2cSJim Jagielski /* -----------------------------20.12.99 15:11--------------------------------
1587*b1cdbd2cSJim Jagielski 
1588*b1cdbd2cSJim Jagielski  ---------------------------------------------------------------------------*/
IMPL_LINK(SwAuthMarkDlg,IsEntryAllowedHdl,Edit *,pEdit)1589*b1cdbd2cSJim Jagielski IMPL_LINK(SwAuthMarkDlg, IsEntryAllowedHdl, Edit*, pEdit)
1590*b1cdbd2cSJim Jagielski {
1591*b1cdbd2cSJim Jagielski 	String sEntry = pEdit->GetText();
1592*b1cdbd2cSJim Jagielski 	sal_Bool bAllowed = sal_False;
1593*b1cdbd2cSJim Jagielski 	if(sEntry.Len())
1594*b1cdbd2cSJim Jagielski 	{
1595*b1cdbd2cSJim Jagielski 		if(aEntryLB.GetEntryPos(sEntry) != LISTBOX_ENTRY_NOTFOUND)
1596*b1cdbd2cSJim Jagielski 			return 0;
1597*b1cdbd2cSJim Jagielski 		else if(bIsFromComponent)
1598*b1cdbd2cSJim Jagielski 		{
1599*b1cdbd2cSJim Jagielski 			const SwAuthorityFieldType* pFType = (const SwAuthorityFieldType*)
1600*b1cdbd2cSJim Jagielski 										pSh->GetFldType(RES_AUTHORITY, aEmptyStr);
1601*b1cdbd2cSJim Jagielski 			bAllowed = !pFType || !pFType->GetEntryByIdentifier(sEntry);
1602*b1cdbd2cSJim Jagielski 		}
1603*b1cdbd2cSJim Jagielski 		else
1604*b1cdbd2cSJim Jagielski 		{
1605*b1cdbd2cSJim Jagielski 			bAllowed = !xBibAccess.is() || !xBibAccess->hasByName(sEntry);
1606*b1cdbd2cSJim Jagielski 		}
1607*b1cdbd2cSJim Jagielski 	}
1608*b1cdbd2cSJim Jagielski 	return bAllowed;
1609*b1cdbd2cSJim Jagielski }
1610*b1cdbd2cSJim Jagielski /* -----------------21.09.99 14:19-------------------
1611*b1cdbd2cSJim Jagielski 
1612*b1cdbd2cSJim Jagielski  --------------------------------------------------*/
InitControls()1613*b1cdbd2cSJim Jagielski void SwAuthMarkDlg::InitControls()
1614*b1cdbd2cSJim Jagielski {
1615*b1cdbd2cSJim Jagielski 	DBG_ASSERT(pSh, "Shell nicht da?");
1616*b1cdbd2cSJim Jagielski 	SwField* pField = pSh->GetCurFld();
1617*b1cdbd2cSJim Jagielski 	ASSERT(bNewEntry || pField, "Keine aktuelle Markierung");
1618*b1cdbd2cSJim Jagielski 	if(bNewEntry)
1619*b1cdbd2cSJim Jagielski 	{
1620*b1cdbd2cSJim Jagielski 		ChangeSourceHdl(aFromComponentRB.IsChecked() ? &aFromComponentRB : &aFromDocContentRB);
1621*b1cdbd2cSJim Jagielski 		aCreateEntryPB.Enable(!aFromComponentRB.IsChecked());
1622*b1cdbd2cSJim Jagielski 		if(!aFromComponentRB.IsChecked() && m_sCreatedEntry[0].Len())
1623*b1cdbd2cSJim Jagielski 			for(sal_uInt16 i = 0; i < AUTH_FIELD_END; i++)
1624*b1cdbd2cSJim Jagielski 				m_sFields[i] = m_sCreatedEntry[i];
1625*b1cdbd2cSJim Jagielski 	}
1626*b1cdbd2cSJim Jagielski 	if(bNewEntry || !pField || pField->GetTyp()->Which() != RES_AUTHORITY)
1627*b1cdbd2cSJim Jagielski 		return;
1628*b1cdbd2cSJim Jagielski 
1629*b1cdbd2cSJim Jagielski 	const SwAuthEntry* pEntry = ((SwAuthorityFieldType*)pField->GetTyp())->
1630*b1cdbd2cSJim Jagielski             GetEntryByHandle(((SwAuthorityField*)pField)->GetHandle());
1631*b1cdbd2cSJim Jagielski 
1632*b1cdbd2cSJim Jagielski 	DBG_ASSERT(pEntry, "No authority entry found");
1633*b1cdbd2cSJim Jagielski 	if(!pEntry)
1634*b1cdbd2cSJim Jagielski 		return;
1635*b1cdbd2cSJim Jagielski 	for(sal_uInt16 i = 0; i < AUTH_FIELD_END; i++)
1636*b1cdbd2cSJim Jagielski 		m_sFields[i] = pEntry->GetAuthorField((ToxAuthorityField)i);
1637*b1cdbd2cSJim Jagielski 
1638*b1cdbd2cSJim Jagielski 	aEntryED.SetText(pEntry->GetAuthorField(AUTH_FIELD_IDENTIFIER));
1639*b1cdbd2cSJim Jagielski 	aAuthorFI.SetText(pEntry->GetAuthorField(AUTH_FIELD_AUTHOR));
1640*b1cdbd2cSJim Jagielski 	aTitleFI.SetText(pEntry->GetAuthorField(AUTH_FIELD_TITLE));
1641*b1cdbd2cSJim Jagielski }
1642*b1cdbd2cSJim Jagielski /* -----------------------------05.09.2002 09:44------------------------------
1643*b1cdbd2cSJim Jagielski 
1644*b1cdbd2cSJim Jagielski  ---------------------------------------------------------------------------*/
Activate()1645*b1cdbd2cSJim Jagielski void    SwAuthMarkDlg::Activate()
1646*b1cdbd2cSJim Jagielski {
1647*b1cdbd2cSJim Jagielski     aOKBT.Enable(!pSh->HasReadonlySel());
1648*b1cdbd2cSJim Jagielski     Window::Activate();
1649*b1cdbd2cSJim Jagielski }
1650*b1cdbd2cSJim Jagielski /* -----------------16.09.99 14:27-------------------
1651*b1cdbd2cSJim Jagielski 
1652*b1cdbd2cSJim Jagielski  --------------------------------------------------*/
SwCreateAuthEntryDlg_Impl(Window * pParent,const String pFields[],SwWrtShell & rSh,sal_Bool bNewEntry,sal_Bool bCreate)1653*b1cdbd2cSJim Jagielski SwCreateAuthEntryDlg_Impl::SwCreateAuthEntryDlg_Impl(Window* pParent,
1654*b1cdbd2cSJim Jagielski 		const String pFields[],
1655*b1cdbd2cSJim Jagielski 		SwWrtShell& rSh,
1656*b1cdbd2cSJim Jagielski 		sal_Bool bNewEntry,
1657*b1cdbd2cSJim Jagielski 		sal_Bool bCreate) :
1658*b1cdbd2cSJim Jagielski 	ModalDialog(pParent, SW_RES(DLG_CREATE_AUTH_ENTRY)),
1659*b1cdbd2cSJim Jagielski     aEntriesFL(this,    SW_RES(FL_ENTRIES    )),
1660*b1cdbd2cSJim Jagielski     pTypeListBox(0),
1661*b1cdbd2cSJim Jagielski     pIdentifierBox(0),
1662*b1cdbd2cSJim Jagielski     aOKBT(this,         SW_RES(PB_OK         )),
1663*b1cdbd2cSJim Jagielski     aCancelBT(this,     SW_RES(PB_CANCEL        )),
1664*b1cdbd2cSJim Jagielski     aHelpBT(this,       SW_RES(PB_HELP      )),
1665*b1cdbd2cSJim Jagielski     rWrtSh(rSh),
1666*b1cdbd2cSJim Jagielski 	m_bNewEntryMode(bNewEntry),
1667*b1cdbd2cSJim Jagielski 	m_bNameAllowed(sal_True)
1668*b1cdbd2cSJim Jagielski {
1669*b1cdbd2cSJim Jagielski 	FreeResource();
1670*b1cdbd2cSJim Jagielski     Point aFLPos(aEntriesFL.GetPosPixel());
1671*b1cdbd2cSJim Jagielski     Point aTL1(aFLPos);
1672*b1cdbd2cSJim Jagielski     Size aFLSz(aEntriesFL.GetSizePixel().Width(), GetSizePixel().Height());
1673*b1cdbd2cSJim Jagielski     long nControlSpace = aFLSz.Width() / 4;
1674*b1cdbd2cSJim Jagielski 	long nControlWidth = nControlSpace - 2 * aTL1.X();
1675*b1cdbd2cSJim Jagielski 	aTL1.X() *= 2;
1676*b1cdbd2cSJim Jagielski 	aTL1.Y() *= 5;
1677*b1cdbd2cSJim Jagielski 	Point aTR1(aTL1);
1678*b1cdbd2cSJim Jagielski 	aTR1.X() += nControlSpace;
1679*b1cdbd2cSJim Jagielski 	Point aTL2(aTR1);
1680*b1cdbd2cSJim Jagielski 	aTL2.X() += nControlSpace;
1681*b1cdbd2cSJim Jagielski 	Point aTR2(aTL2);
1682*b1cdbd2cSJim Jagielski 	aTR2.X() += nControlSpace;
1683*b1cdbd2cSJim Jagielski     Size aFixedTextSize(aFLSz);
1684*b1cdbd2cSJim Jagielski 	Size aTmpSz(8,10);
1685*b1cdbd2cSJim Jagielski 	aTmpSz = LogicToPixel(aTmpSz, MAP_APPFONT);
1686*b1cdbd2cSJim Jagielski 	aFixedTextSize.Height() = aTmpSz.Width();
1687*b1cdbd2cSJim Jagielski 	Size aEditSize(aFixedTextSize);
1688*b1cdbd2cSJim Jagielski     aFixedTextSize.Width() = nControlWidth + aFLPos.X();
1689*b1cdbd2cSJim Jagielski 	aEditSize.Height() = aTmpSz.Height();
1690*b1cdbd2cSJim Jagielski 	aEditSize.Width() = nControlWidth;
1691*b1cdbd2cSJim Jagielski 
1692*b1cdbd2cSJim Jagielski     sal_uInt16 nOffset = static_cast< sal_uInt16 >(aTmpSz.Width() * 3 / 2);
1693*b1cdbd2cSJim Jagielski 	sal_Bool bLeft = sal_True;
1694*b1cdbd2cSJim Jagielski     Window* pRefWindow = 0;
1695*b1cdbd2cSJim Jagielski     for(sal_uInt16 nIndex = 0; nIndex < AUTH_FIELD_END; nIndex++)
1696*b1cdbd2cSJim Jagielski 	{
1697*b1cdbd2cSJim Jagielski 		const TextInfo aCurInfo = aTextInfoArr[nIndex];
1698*b1cdbd2cSJim Jagielski 
1699*b1cdbd2cSJim Jagielski 		pFixedTexts[nIndex] = new FixedText(this);
1700*b1cdbd2cSJim Jagielski         if(nIndex)
1701*b1cdbd2cSJim Jagielski             pFixedTexts[nIndex]->SetZOrder( pRefWindow, WINDOW_ZORDER_BEHIND );
1702*b1cdbd2cSJim Jagielski         else
1703*b1cdbd2cSJim Jagielski             pFixedTexts[nIndex]->SetZOrder( 0, WINDOW_ZORDER_FIRST );
1704*b1cdbd2cSJim Jagielski 
1705*b1cdbd2cSJim Jagielski         pRefWindow = pFixedTexts[nIndex];
1706*b1cdbd2cSJim Jagielski 
1707*b1cdbd2cSJim Jagielski 		pFixedTexts[nIndex]->SetSizePixel(aFixedTextSize);
1708*b1cdbd2cSJim Jagielski 		pFixedTexts[nIndex]->SetPosPixel(bLeft ? aTL1 : aTL2);
1709*b1cdbd2cSJim Jagielski 		pFixedTexts[nIndex]->SetText(SW_RES(STR_AUTH_FIELD_START + aCurInfo.nToxField));
1710*b1cdbd2cSJim Jagielski 		pFixedTexts[nIndex]->Show();
1711*b1cdbd2cSJim Jagielski 		pEdits[nIndex] = 0;
1712*b1cdbd2cSJim Jagielski 		if( AUTH_FIELD_AUTHORITY_TYPE == aCurInfo.nToxField )
1713*b1cdbd2cSJim Jagielski 		{
1714*b1cdbd2cSJim Jagielski 			pTypeListBox = new ListBox(this, WB_DROPDOWN|WB_BORDER);
1715*b1cdbd2cSJim Jagielski             pTypeListBox->SetZOrder( pRefWindow, WINDOW_ZORDER_BEHIND );
1716*b1cdbd2cSJim Jagielski             pRefWindow = pTypeListBox;
1717*b1cdbd2cSJim Jagielski 			for(sal_uInt16 j = 0; j < AUTH_TYPE_END; j++)
1718*b1cdbd2cSJim Jagielski 				pTypeListBox->InsertEntry(String(SW_RES(STR_AUTH_TYPE_START + j)));
1719*b1cdbd2cSJim Jagielski 			if(pFields[aCurInfo.nToxField].Len())
1720*b1cdbd2cSJim Jagielski 			{
1721*b1cdbd2cSJim Jagielski                 sal_uInt16 nIndexPos = static_cast< sal_uInt16 >(pFields[aCurInfo.nToxField].ToInt32());
1722*b1cdbd2cSJim Jagielski 				pTypeListBox->SelectEntryPos(nIndexPos);
1723*b1cdbd2cSJim Jagielski 			}
1724*b1cdbd2cSJim Jagielski 			Size aTmp(aEditSize);
1725*b1cdbd2cSJim Jagielski 			aTmp.Height() *= 4;
1726*b1cdbd2cSJim Jagielski 			pTypeListBox->SetSizePixel(aTmp);
1727*b1cdbd2cSJim Jagielski 			pTypeListBox->SetPosPixel(bLeft ? aTR1 : aTR2);
1728*b1cdbd2cSJim Jagielski 			pTypeListBox->Show();
1729*b1cdbd2cSJim Jagielski 			pTypeListBox->SetSelectHdl(LINK(this, SwCreateAuthEntryDlg_Impl, EnableHdl));
1730*b1cdbd2cSJim Jagielski 			pTypeListBox->SetHelpId(aCurInfo.pHelpId);
1731*b1cdbd2cSJim Jagielski 
1732*b1cdbd2cSJim Jagielski 		}
1733*b1cdbd2cSJim Jagielski 		else if(AUTH_FIELD_IDENTIFIER == aCurInfo.nToxField && !m_bNewEntryMode)
1734*b1cdbd2cSJim Jagielski 		{
1735*b1cdbd2cSJim Jagielski             pIdentifierBox = new ComboBox(this, WB_BORDER|WB_DROPDOWN);
1736*b1cdbd2cSJim Jagielski             pIdentifierBox->SetZOrder( pRefWindow, WINDOW_ZORDER_BEHIND );
1737*b1cdbd2cSJim Jagielski             pRefWindow = pIdentifierBox;
1738*b1cdbd2cSJim Jagielski 
1739*b1cdbd2cSJim Jagielski 			pIdentifierBox->SetSelectHdl(LINK(this,
1740*b1cdbd2cSJim Jagielski 									SwCreateAuthEntryDlg_Impl, IdentifierHdl));
1741*b1cdbd2cSJim Jagielski 
1742*b1cdbd2cSJim Jagielski 
1743*b1cdbd2cSJim Jagielski 			const SwAuthorityFieldType* pFType = (const SwAuthorityFieldType*)
1744*b1cdbd2cSJim Jagielski 										rSh.GetFldType(RES_AUTHORITY, aEmptyStr);
1745*b1cdbd2cSJim Jagielski 			if(pFType)
1746*b1cdbd2cSJim Jagielski 			{
1747*b1cdbd2cSJim Jagielski 				SvStringsDtor aIds;
1748*b1cdbd2cSJim Jagielski 				pFType->GetAllEntryIdentifiers(	aIds );
1749*b1cdbd2cSJim Jagielski 				for(sal_uInt16 n = 0; n < aIds.Count(); n++)
1750*b1cdbd2cSJim Jagielski 					pIdentifierBox->InsertEntry(*aIds.GetObject(n));
1751*b1cdbd2cSJim Jagielski 			}
1752*b1cdbd2cSJim Jagielski 			pIdentifierBox->SetText(pFields[aCurInfo.nToxField]);
1753*b1cdbd2cSJim Jagielski 			Size aTmp(aEditSize);
1754*b1cdbd2cSJim Jagielski 			aTmp.Height() *= 4;
1755*b1cdbd2cSJim Jagielski 			pIdentifierBox->SetSizePixel(aTmp);
1756*b1cdbd2cSJim Jagielski 			pIdentifierBox->SetPosPixel(bLeft ? aTR1 : aTR2);
1757*b1cdbd2cSJim Jagielski 			pIdentifierBox->Show();
1758*b1cdbd2cSJim Jagielski 			pIdentifierBox->SetHelpId(aCurInfo.pHelpId);
1759*b1cdbd2cSJim Jagielski 		}
1760*b1cdbd2cSJim Jagielski 		else
1761*b1cdbd2cSJim Jagielski 		{
1762*b1cdbd2cSJim Jagielski 			pEdits[nIndex] = new Edit(this, WB_BORDER);
1763*b1cdbd2cSJim Jagielski             pEdits[nIndex]->SetZOrder( pRefWindow, WINDOW_ZORDER_BEHIND );
1764*b1cdbd2cSJim Jagielski             pRefWindow = pEdits[nIndex];
1765*b1cdbd2cSJim Jagielski             pEdits[nIndex]->SetSizePixel(aEditSize);
1766*b1cdbd2cSJim Jagielski 			pEdits[nIndex]->SetPosPixel(bLeft ? aTR1 : aTR2);
1767*b1cdbd2cSJim Jagielski 			pEdits[nIndex]->SetText(pFields[aCurInfo.nToxField]);
1768*b1cdbd2cSJim Jagielski 			pEdits[nIndex]->Show();
1769*b1cdbd2cSJim Jagielski 			pEdits[nIndex]->SetHelpId(aCurInfo.pHelpId);
1770*b1cdbd2cSJim Jagielski 			if(AUTH_FIELD_IDENTIFIER == aCurInfo.nToxField)
1771*b1cdbd2cSJim Jagielski 			{
1772*b1cdbd2cSJim Jagielski 				pEdits[nIndex]->SetModifyHdl(LINK(this, SwCreateAuthEntryDlg_Impl, ShortNameHdl));
1773*b1cdbd2cSJim Jagielski 				m_bNameAllowed = pFields[nIndex].Len() > 0;
1774*b1cdbd2cSJim Jagielski 				if(!bCreate)
1775*b1cdbd2cSJim Jagielski 				{
1776*b1cdbd2cSJim Jagielski 					pFixedTexts[nIndex]->Enable(sal_False);
1777*b1cdbd2cSJim Jagielski 					pEdits[nIndex]->Enable(sal_False);
1778*b1cdbd2cSJim Jagielski 				}
1779*b1cdbd2cSJim Jagielski 			}
1780*b1cdbd2cSJim Jagielski 		}
1781*b1cdbd2cSJim Jagielski 		if(bLeft)
1782*b1cdbd2cSJim Jagielski 		{
1783*b1cdbd2cSJim Jagielski 			aTL1.Y() += nOffset;
1784*b1cdbd2cSJim Jagielski 			aTR1.Y() += nOffset;
1785*b1cdbd2cSJim Jagielski 		}
1786*b1cdbd2cSJim Jagielski 		else
1787*b1cdbd2cSJim Jagielski 		{
1788*b1cdbd2cSJim Jagielski 			aTL2.Y() += nOffset;
1789*b1cdbd2cSJim Jagielski 			aTR2.Y() += nOffset;
1790*b1cdbd2cSJim Jagielski 		}
1791*b1cdbd2cSJim Jagielski 		bLeft = !bLeft;
1792*b1cdbd2cSJim Jagielski 	}
1793*b1cdbd2cSJim Jagielski 	EnableHdl(pTypeListBox);
1794*b1cdbd2cSJim Jagielski 
1795*b1cdbd2cSJim Jagielski     long nHeightDiff = - aFLSz.Height();
1796*b1cdbd2cSJim Jagielski     aFLSz.Height() = aTL1.Y();
1797*b1cdbd2cSJim Jagielski     nHeightDiff += aFLSz.Height();
1798*b1cdbd2cSJim Jagielski //    aEntriesFL.SetSizePixel(aFLSz);
1799*b1cdbd2cSJim Jagielski 	Size aDlgSize(GetSizePixel());
1800*b1cdbd2cSJim Jagielski 	aDlgSize.Height() += nHeightDiff;
1801*b1cdbd2cSJim Jagielski     SetSizePixel(aDlgSize);
1802*b1cdbd2cSJim Jagielski 
1803*b1cdbd2cSJim Jagielski }
1804*b1cdbd2cSJim Jagielski /* -----------------16.09.99 14:47-------------------
1805*b1cdbd2cSJim Jagielski 
1806*b1cdbd2cSJim Jagielski  --------------------------------------------------*/
~SwCreateAuthEntryDlg_Impl()1807*b1cdbd2cSJim Jagielski SwCreateAuthEntryDlg_Impl::~SwCreateAuthEntryDlg_Impl()
1808*b1cdbd2cSJim Jagielski {
1809*b1cdbd2cSJim Jagielski 	for(sal_uInt16 i = 0; i < AUTH_FIELD_END; i++)
1810*b1cdbd2cSJim Jagielski 	{
1811*b1cdbd2cSJim Jagielski 		delete pFixedTexts[i];
1812*b1cdbd2cSJim Jagielski 		delete pEdits[i];
1813*b1cdbd2cSJim Jagielski 	}
1814*b1cdbd2cSJim Jagielski 	delete pTypeListBox;
1815*b1cdbd2cSJim Jagielski 	delete pIdentifierBox;
1816*b1cdbd2cSJim Jagielski }
1817*b1cdbd2cSJim Jagielski /* -----------------16.09.99 14:27-------------------
1818*b1cdbd2cSJim Jagielski 
1819*b1cdbd2cSJim Jagielski  --------------------------------------------------*/
GetEntryText(ToxAuthorityField eField) const1820*b1cdbd2cSJim Jagielski String	SwCreateAuthEntryDlg_Impl::GetEntryText(ToxAuthorityField eField) const
1821*b1cdbd2cSJim Jagielski {
1822*b1cdbd2cSJim Jagielski 	String sRet;
1823*b1cdbd2cSJim Jagielski 	if( AUTH_FIELD_AUTHORITY_TYPE == eField )
1824*b1cdbd2cSJim Jagielski 	{
1825*b1cdbd2cSJim Jagielski 		DBG_ASSERT(pTypeListBox, "No ListBox");
1826*b1cdbd2cSJim Jagielski 		sRet = String::CreateFromInt32(pTypeListBox->GetSelectEntryPos());
1827*b1cdbd2cSJim Jagielski 	}
1828*b1cdbd2cSJim Jagielski 	else if( AUTH_FIELD_IDENTIFIER == eField && !m_bNewEntryMode)
1829*b1cdbd2cSJim Jagielski 	{
1830*b1cdbd2cSJim Jagielski 		DBG_ASSERT(pIdentifierBox, "No ComboBox");
1831*b1cdbd2cSJim Jagielski 		sRet = pIdentifierBox->GetText();
1832*b1cdbd2cSJim Jagielski 	}
1833*b1cdbd2cSJim Jagielski 	else
1834*b1cdbd2cSJim Jagielski 	{
1835*b1cdbd2cSJim Jagielski 		for(sal_uInt16 nIndex = 0; nIndex < AUTH_FIELD_END; nIndex++)
1836*b1cdbd2cSJim Jagielski 		{
1837*b1cdbd2cSJim Jagielski 			const TextInfo aCurInfo = aTextInfoArr[nIndex];
1838*b1cdbd2cSJim Jagielski 			if(aCurInfo.nToxField == eField)
1839*b1cdbd2cSJim Jagielski 			{
1840*b1cdbd2cSJim Jagielski 				sRet = pEdits[nIndex]->GetText();
1841*b1cdbd2cSJim Jagielski 				break;
1842*b1cdbd2cSJim Jagielski 			}
1843*b1cdbd2cSJim Jagielski 		}
1844*b1cdbd2cSJim Jagielski 	}
1845*b1cdbd2cSJim Jagielski 	return sRet;
1846*b1cdbd2cSJim Jagielski }
1847*b1cdbd2cSJim Jagielski /* -----------------21.09.99 13:54-------------------
1848*b1cdbd2cSJim Jagielski 
1849*b1cdbd2cSJim Jagielski  --------------------------------------------------*/
IMPL_LINK(SwCreateAuthEntryDlg_Impl,IdentifierHdl,ComboBox *,pBox)1850*b1cdbd2cSJim Jagielski IMPL_LINK(SwCreateAuthEntryDlg_Impl, IdentifierHdl, ComboBox*, pBox)
1851*b1cdbd2cSJim Jagielski {
1852*b1cdbd2cSJim Jagielski 	const SwAuthorityFieldType* pFType = (const SwAuthorityFieldType*)
1853*b1cdbd2cSJim Jagielski 								rWrtSh.GetFldType(RES_AUTHORITY, aEmptyStr);
1854*b1cdbd2cSJim Jagielski 	if(pFType)
1855*b1cdbd2cSJim Jagielski 	{
1856*b1cdbd2cSJim Jagielski 		const SwAuthEntry* pEntry = pFType->GetEntryByIdentifier(
1857*b1cdbd2cSJim Jagielski 														pBox->GetText());
1858*b1cdbd2cSJim Jagielski 		if(pEntry)
1859*b1cdbd2cSJim Jagielski 		{
1860*b1cdbd2cSJim Jagielski 			for(sal_uInt16 i = 0; i < AUTH_FIELD_END; i++)
1861*b1cdbd2cSJim Jagielski 			{
1862*b1cdbd2cSJim Jagielski 				if(AUTH_FIELD_IDENTIFIER == i)
1863*b1cdbd2cSJim Jagielski 					continue;
1864*b1cdbd2cSJim Jagielski 				if(AUTH_FIELD_AUTHORITY_TYPE == i)
1865*b1cdbd2cSJim Jagielski 					pTypeListBox->SelectEntry(
1866*b1cdbd2cSJim Jagielski 								pEntry->GetAuthorField((ToxAuthorityField)i));
1867*b1cdbd2cSJim Jagielski 				else
1868*b1cdbd2cSJim Jagielski 					pEdits[i]->SetText(
1869*b1cdbd2cSJim Jagielski 								pEntry->GetAuthorField((ToxAuthorityField)i));
1870*b1cdbd2cSJim Jagielski 			}
1871*b1cdbd2cSJim Jagielski 		}
1872*b1cdbd2cSJim Jagielski 	}
1873*b1cdbd2cSJim Jagielski 	return 0;
1874*b1cdbd2cSJim Jagielski }
1875*b1cdbd2cSJim Jagielski /* -----------------------------20.12.99 15:07--------------------------------
1876*b1cdbd2cSJim Jagielski 
1877*b1cdbd2cSJim Jagielski  ---------------------------------------------------------------------------*/
1878*b1cdbd2cSJim Jagielski 
IMPL_LINK(SwCreateAuthEntryDlg_Impl,ShortNameHdl,Edit *,pEdit)1879*b1cdbd2cSJim Jagielski IMPL_LINK(SwCreateAuthEntryDlg_Impl, ShortNameHdl, Edit*, pEdit)
1880*b1cdbd2cSJim Jagielski {
1881*b1cdbd2cSJim Jagielski 	if(aShortNameCheckLink.IsSet())
1882*b1cdbd2cSJim Jagielski 	{
1883*b1cdbd2cSJim Jagielski 		sal_Bool bEnable = 0 != aShortNameCheckLink.Call(pEdit);
1884*b1cdbd2cSJim Jagielski 		m_bNameAllowed |= bEnable;
1885*b1cdbd2cSJim Jagielski 		aOKBT.Enable(pTypeListBox->GetSelectEntryCount() && bEnable);
1886*b1cdbd2cSJim Jagielski 	}
1887*b1cdbd2cSJim Jagielski 	return 0;
1888*b1cdbd2cSJim Jagielski }
1889*b1cdbd2cSJim Jagielski /* -----------------------------20.12.99 15:54--------------------------------
1890*b1cdbd2cSJim Jagielski 
1891*b1cdbd2cSJim Jagielski  ---------------------------------------------------------------------------*/
IMPL_LINK(SwCreateAuthEntryDlg_Impl,EnableHdl,ListBox *,pBox)1892*b1cdbd2cSJim Jagielski IMPL_LINK(SwCreateAuthEntryDlg_Impl, EnableHdl, ListBox*, pBox)
1893*b1cdbd2cSJim Jagielski {
1894*b1cdbd2cSJim Jagielski 	aOKBT.Enable(m_bNameAllowed && pBox->GetSelectEntryCount());
1895*b1cdbd2cSJim Jagielski 	return 0;
1896*b1cdbd2cSJim Jagielski };
1897*b1cdbd2cSJim Jagielski /* -----------------06.10.99 10:00-------------------
1898*b1cdbd2cSJim Jagielski 
1899*b1cdbd2cSJim Jagielski  --------------------------------------------------*/
SwAuthMarkFloatDlg(SfxBindings * _pBindings,SfxChildWindow * pChild,Window * pParent,SfxChildWinInfo * pInfo,sal_Bool bNew)1900*b1cdbd2cSJim Jagielski SwAuthMarkFloatDlg::SwAuthMarkFloatDlg(SfxBindings* _pBindings,
1901*b1cdbd2cSJim Jagielski 				   				SfxChildWindow* pChild,
1902*b1cdbd2cSJim Jagielski 				   				Window *pParent,
1903*b1cdbd2cSJim Jagielski 								SfxChildWinInfo* pInfo,
1904*b1cdbd2cSJim Jagielski 				   				sal_Bool bNew) :
1905*b1cdbd2cSJim Jagielski     SfxModelessDialog(_pBindings, pChild, pParent, SW_RES(DLG_INSAUTHMARK)),
1906*b1cdbd2cSJim Jagielski     aDlg(this, SW_RES(WIN_DLG), bNew)
1907*b1cdbd2cSJim Jagielski {
1908*b1cdbd2cSJim Jagielski 	FreeResource();
1909*b1cdbd2cSJim Jagielski 	Initialize(pInfo);
1910*b1cdbd2cSJim Jagielski 	SwWrtShell* pWrtShell = ::GetActiveWrtShell();
1911*b1cdbd2cSJim Jagielski 	DBG_ASSERT(pWrtShell, "No shell?");
1912*b1cdbd2cSJim Jagielski 	aDlg.ReInitDlg(*pWrtShell);
1913*b1cdbd2cSJim Jagielski }
1914*b1cdbd2cSJim Jagielski /* -----------------06.10.99 10:27-------------------
1915*b1cdbd2cSJim Jagielski 
1916*b1cdbd2cSJim Jagielski  --------------------------------------------------*/
Activate()1917*b1cdbd2cSJim Jagielski void	SwAuthMarkFloatDlg::Activate()
1918*b1cdbd2cSJim Jagielski {
1919*b1cdbd2cSJim Jagielski 	SfxModelessDialog::Activate();
1920*b1cdbd2cSJim Jagielski 	aDlg.Activate();
1921*b1cdbd2cSJim Jagielski }
1922*b1cdbd2cSJim Jagielski 
ReInitDlg(SwWrtShell & rWrtShell)1923*b1cdbd2cSJim Jagielski void SwAuthMarkFloatDlg::ReInitDlg(SwWrtShell& rWrtShell)
1924*b1cdbd2cSJim Jagielski {
1925*b1cdbd2cSJim Jagielski 	aDlg.ReInitDlg( rWrtShell );
1926*b1cdbd2cSJim Jagielski }
1927*b1cdbd2cSJim Jagielski 
1928*b1cdbd2cSJim Jagielski /* -----------------06.10.99 10:35-------------------
1929*b1cdbd2cSJim Jagielski 
1930*b1cdbd2cSJim Jagielski  --------------------------------------------------*/
SwAuthMarkModalDlg(Window * pParent,SwWrtShell & rSh)1931*b1cdbd2cSJim Jagielski SwAuthMarkModalDlg::SwAuthMarkModalDlg(Window *pParent, SwWrtShell& rSh) :
1932*b1cdbd2cSJim Jagielski 	SvxStandardDialog(pParent, SW_RES(DLG_EDIT_AUTHMARK)),
1933*b1cdbd2cSJim Jagielski 	aDlg(this, SW_RES(WIN_DLG), sal_False)
1934*b1cdbd2cSJim Jagielski {
1935*b1cdbd2cSJim Jagielski 	FreeResource();
1936*b1cdbd2cSJim Jagielski 	aDlg.ReInitDlg(rSh);
1937*b1cdbd2cSJim Jagielski }
1938*b1cdbd2cSJim Jagielski /* -----------------06.10.99 10:46-------------------
1939*b1cdbd2cSJim Jagielski 
1940*b1cdbd2cSJim Jagielski  --------------------------------------------------*/
Apply()1941*b1cdbd2cSJim Jagielski void	SwAuthMarkModalDlg::Apply()
1942*b1cdbd2cSJim Jagielski {
1943*b1cdbd2cSJim Jagielski 	aDlg.InsertHdl(0);
1944*b1cdbd2cSJim Jagielski }
1945*b1cdbd2cSJim Jagielski 
1946