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