1efeef26fSAndrew Rist /************************************************************** 2cdf0e10cSrcweir * 3efeef26fSAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 4efeef26fSAndrew Rist * or more contributor license agreements. See the NOTICE file 5efeef26fSAndrew Rist * distributed with this work for additional information 6efeef26fSAndrew Rist * regarding copyright ownership. The ASF licenses this file 7efeef26fSAndrew Rist * to you under the Apache License, Version 2.0 (the 8efeef26fSAndrew Rist * "License"); you may not use this file except in compliance 9efeef26fSAndrew Rist * with the License. You may obtain a copy of the License at 10cdf0e10cSrcweir * 11efeef26fSAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 12cdf0e10cSrcweir * 13efeef26fSAndrew Rist * Unless required by applicable law or agreed to in writing, 14efeef26fSAndrew Rist * software distributed under the License is distributed on an 15efeef26fSAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16efeef26fSAndrew Rist * KIND, either express or implied. See the License for the 17efeef26fSAndrew Rist * specific language governing permissions and limitations 18efeef26fSAndrew Rist * under the License. 19cdf0e10cSrcweir * 20efeef26fSAndrew Rist *************************************************************/ 21efeef26fSAndrew Rist 22efeef26fSAndrew Rist 23cdf0e10cSrcweir 24cdf0e10cSrcweir // MARKER(update_precomp.py): autogen include statement, do not remove 25cdf0e10cSrcweir #include "precompiled_sw.hxx" 26cdf0e10cSrcweir #ifdef SW_DLLIMPLEMENTATION 27cdf0e10cSrcweir #undef SW_DLLIMPLEMENTATION 28cdf0e10cSrcweir #endif 29cdf0e10cSrcweir 30cdf0e10cSrcweir 31cdf0e10cSrcweir #include <rsc/rscsfx.hxx> 32cdf0e10cSrcweir #include <vcl/msgbox.hxx> 33cdf0e10cSrcweir #include <vcl/help.hxx> 34cdf0e10cSrcweir #include <svl/stritem.hxx> 35cdf0e10cSrcweir #include <svl/urihelper.hxx> 36cdf0e10cSrcweir #include <unotools/pathoptions.hxx> 37cdf0e10cSrcweir #include <sfx2/request.hxx> 38cdf0e10cSrcweir #include <sfx2/viewfrm.hxx> 39cdf0e10cSrcweir #include <sfx2/dispatch.hxx> 40cdf0e10cSrcweir #include <sfx2/docfile.hxx> 41cdf0e10cSrcweir #include <svx/dialogs.hrc> 42cdf0e10cSrcweir #include <svx/svxdlg.hxx> 43cdf0e10cSrcweir #include <svx/flagsdef.hxx> 44cdf0e10cSrcweir #include <svx/simptabl.hxx> 45cdf0e10cSrcweir #include <com/sun/star/ui/dialogs/TemplateDescription.hpp> 46cdf0e10cSrcweir #include <com/sun/star/ui/dialogs/XFilePicker.hpp> 47cdf0e10cSrcweir #include <com/sun/star/ui/dialogs/XFilterManager.hpp> 48cdf0e10cSrcweir #include <svtools/indexentryres.hxx> 49cdf0e10cSrcweir #include <editeng/unolingu.hxx> 50cdf0e10cSrcweir #include <column.hxx> 51cdf0e10cSrcweir #include <fmtfsize.hxx> 52cdf0e10cSrcweir #include <shellio.hxx> 53cdf0e10cSrcweir #include <authfld.hxx> 54cdf0e10cSrcweir #include <swtypes.hxx> 55cdf0e10cSrcweir #include <wrtsh.hxx> 56cdf0e10cSrcweir #ifndef _VIEW_HXX 57cdf0e10cSrcweir #include <view.hxx> 58cdf0e10cSrcweir #endif 59cdf0e10cSrcweir #ifndef _BASESH_HXX 60cdf0e10cSrcweir #include <basesh.hxx> 61cdf0e10cSrcweir #endif 62cdf0e10cSrcweir #include <outline.hxx> 63cdf0e10cSrcweir #include <cnttab.hxx> 64cdf0e10cSrcweir #include <swuicnttab.hxx> 65cdf0e10cSrcweir #include <formedt.hxx> 66cdf0e10cSrcweir #include <poolfmt.hxx> 67cdf0e10cSrcweir #ifndef _POOLFMT_HRC 68cdf0e10cSrcweir #include <poolfmt.hrc> 69cdf0e10cSrcweir #endif 70cdf0e10cSrcweir #include <uitool.hxx> 71cdf0e10cSrcweir #include <fmtcol.hxx> 72cdf0e10cSrcweir #include <fldbas.hxx> 73cdf0e10cSrcweir #include <expfld.hxx> 74cdf0e10cSrcweir #include <unotools.hxx> 75cdf0e10cSrcweir #include <unotxdoc.hxx> 76cdf0e10cSrcweir #include <docsh.hxx> 77cdf0e10cSrcweir #include <swmodule.hxx> 78cdf0e10cSrcweir #include <modcfg.hxx> 79cdf0e10cSrcweir 80cdf0e10cSrcweir #ifndef _CMDID_H 81cdf0e10cSrcweir #include <cmdid.h> 82cdf0e10cSrcweir #endif 83cdf0e10cSrcweir #ifndef _HELPID_H 84cdf0e10cSrcweir #include <helpid.h> 85cdf0e10cSrcweir #endif 86cdf0e10cSrcweir #ifndef _UTLUI_HRC 87cdf0e10cSrcweir #include <utlui.hrc> 88cdf0e10cSrcweir #endif 89cdf0e10cSrcweir #ifndef _INDEX_HRC 90cdf0e10cSrcweir #include <index.hrc> 91cdf0e10cSrcweir #endif 92cdf0e10cSrcweir #ifndef _CNTTAB_HRC 93cdf0e10cSrcweir #include <cnttab.hrc> 94cdf0e10cSrcweir #endif 95cdf0e10cSrcweir #ifndef _GLOBALS_HRC 96cdf0e10cSrcweir #include <globals.hrc> 97cdf0e10cSrcweir #endif 98cdf0e10cSrcweir #include <SwStyleNameMapper.hxx> 99cdf0e10cSrcweir #include <sfx2/filedlghelper.hxx> 100cdf0e10cSrcweir #ifndef _TOXHLP_HXX 101cdf0e10cSrcweir #include <toxwrap.hxx> 102cdf0e10cSrcweir #endif 103cdf0e10cSrcweir #include <chpfld.hxx> 104cdf0e10cSrcweir 105cdf0e10cSrcweir #ifndef _UTLUI_HRC 106cdf0e10cSrcweir #include "utlui.hrc" 107cdf0e10cSrcweir #endif 108cdf0e10cSrcweir 109cdf0e10cSrcweir #include <sfx2/app.hxx> 110cdf0e10cSrcweir 111cdf0e10cSrcweir #include <unomid.h> 112cdf0e10cSrcweir using namespace ::com::sun::star; 113cdf0e10cSrcweir using namespace ::com::sun::star::lang; 114cdf0e10cSrcweir using namespace ::com::sun::star::uno; 115cdf0e10cSrcweir using namespace com::sun::star::ui::dialogs; 116cdf0e10cSrcweir using ::rtl::OUString; 117cdf0e10cSrcweir using namespace ::sfx2; 118cdf0e10cSrcweir #include <svtools/editbrowsebox.hxx> 119cdf0e10cSrcweir 120cdf0e10cSrcweir static const sal_Unicode aDeliStart = '['; //fuer die form 121cdf0e10cSrcweir static const sal_Unicode aDeliEnd = ']'; //fuer die form 122cdf0e10cSrcweir 123cdf0e10cSrcweir #define POS_GRF 0 124cdf0e10cSrcweir #define POS_OLE 1 125cdf0e10cSrcweir #define POS_TABLE 2 126cdf0e10cSrcweir #define POS_FRAME 3 127cdf0e10cSrcweir 128cdf0e10cSrcweir #define IDX_FILE_EXTENSION String::CreateFromAscii( \ 129cdf0e10cSrcweir RTL_CONSTASCII_STRINGPARAM( "*.sdi" )) 130cdf0e10cSrcweir 131cdf0e10cSrcweir 132cdf0e10cSrcweir /* -----------------14.06.99 13:10------------------- 133cdf0e10cSrcweir 134cdf0e10cSrcweir --------------------------------------------------*/ 135cdf0e10cSrcweir String lcl_CreateAutoMarkFileDlg( const String& rURL, 136cdf0e10cSrcweir const String& rFileString, sal_Bool bOpen ) 137cdf0e10cSrcweir { 138cdf0e10cSrcweir String sRet; 139cdf0e10cSrcweir 140cdf0e10cSrcweir FileDialogHelper aDlgHelper( bOpen ? 141cdf0e10cSrcweir TemplateDescription::FILEOPEN_SIMPLE : TemplateDescription::FILESAVE_AUTOEXTENSION, 0 ); 142cdf0e10cSrcweir uno::Reference < XFilePicker > xFP = aDlgHelper.GetFilePicker(); 143cdf0e10cSrcweir 144cdf0e10cSrcweir uno::Reference<XFilterManager> xFltMgr(xFP, UNO_QUERY); 145cdf0e10cSrcweir String sCurFltr( IDX_FILE_EXTENSION ); 146cdf0e10cSrcweir xFltMgr->appendFilter( rFileString, sCurFltr ); 147cdf0e10cSrcweir xFltMgr->setCurrentFilter( rFileString ) ; 148cdf0e10cSrcweir 149cdf0e10cSrcweir String& rLastSaveDir = (String&)SFX_APP()->GetLastSaveDirectory(); 150cdf0e10cSrcweir String sSaveDir = rLastSaveDir; 151cdf0e10cSrcweir 152cdf0e10cSrcweir if( rURL.Len() ) 153cdf0e10cSrcweir xFP->setDisplayDirectory( rURL ); 154cdf0e10cSrcweir else 155cdf0e10cSrcweir { 156cdf0e10cSrcweir SvtPathOptions aPathOpt; 157cdf0e10cSrcweir xFP->setDisplayDirectory( aPathOpt.GetUserConfigPath() ); 158cdf0e10cSrcweir } 159cdf0e10cSrcweir 160cdf0e10cSrcweir if( aDlgHelper.Execute() == ERRCODE_NONE ) 161cdf0e10cSrcweir { 162cdf0e10cSrcweir sRet = xFP->getFiles().getConstArray()[0]; 163cdf0e10cSrcweir } 164cdf0e10cSrcweir rLastSaveDir = sSaveDir; 165cdf0e10cSrcweir return sRet; 166cdf0e10cSrcweir } 167cdf0e10cSrcweir /* -----------------------------19.01.00 11:09-------------------------------- 168cdf0e10cSrcweir 169cdf0e10cSrcweir ---------------------------------------------------------------------------*/ 170cdf0e10cSrcweir struct AutoMarkEntry 171cdf0e10cSrcweir { 172cdf0e10cSrcweir String sSearch; 173cdf0e10cSrcweir String sAlternative; 174cdf0e10cSrcweir String sPrimKey; 175cdf0e10cSrcweir String sSecKey; 176cdf0e10cSrcweir String sComment; 177cdf0e10cSrcweir sal_Bool bCase; 178cdf0e10cSrcweir sal_Bool bWord; 179cdf0e10cSrcweir 180cdf0e10cSrcweir AutoMarkEntry() : 181cdf0e10cSrcweir bCase(sal_False), 182cdf0e10cSrcweir bWord(sal_False){} 183cdf0e10cSrcweir }; 184cdf0e10cSrcweir typedef AutoMarkEntry* AutoMarkEntryPtr; 185cdf0e10cSrcweir SV_DECL_PTRARR_DEL(AutoMarkEntryArr, AutoMarkEntryPtr, 0, 4) 186cdf0e10cSrcweir SV_IMPL_PTRARR(AutoMarkEntryArr, AutoMarkEntryPtr); 187cdf0e10cSrcweir 188cdf0e10cSrcweir typedef ::svt::EditBrowseBox SwEntryBrowseBox_Base; 189cdf0e10cSrcweir class SwEntryBrowseBox : public SwEntryBrowseBox_Base 190cdf0e10cSrcweir { 191cdf0e10cSrcweir Edit aCellEdit; 192cdf0e10cSrcweir ::svt::CheckBoxControl aCellCheckBox; 193cdf0e10cSrcweir 194cdf0e10cSrcweir String sSearch; 195cdf0e10cSrcweir String sAlternative; 196cdf0e10cSrcweir String sPrimKey; 197cdf0e10cSrcweir String sSecKey; 198cdf0e10cSrcweir String sComment; 199cdf0e10cSrcweir String sCaseSensitive; 200cdf0e10cSrcweir String sWordOnly; 201cdf0e10cSrcweir String sYes; 202cdf0e10cSrcweir String sNo; 203cdf0e10cSrcweir 204cdf0e10cSrcweir AutoMarkEntryArr aEntryArr; 205cdf0e10cSrcweir 206cdf0e10cSrcweir ::svt::CellControllerRef xController; 207cdf0e10cSrcweir ::svt::CellControllerRef xCheckController; 208cdf0e10cSrcweir 209cdf0e10cSrcweir long nCurrentRow; 210cdf0e10cSrcweir sal_Bool bModified; 211cdf0e10cSrcweir 212cdf0e10cSrcweir 213cdf0e10cSrcweir void SetModified() {bModified = sal_True;} 214cdf0e10cSrcweir 215cdf0e10cSrcweir protected: 216cdf0e10cSrcweir virtual sal_Bool SeekRow( long nRow ); 217cdf0e10cSrcweir // virtual void PaintField( OutputDevice& rDev, const awt::Rectangle& rRect, 218cdf0e10cSrcweir // sal_uInt16 nColumnId ) const; 219cdf0e10cSrcweir virtual void PaintCell(OutputDevice& rDev, const Rectangle& rRect, sal_uInt16 nColId) const; 220cdf0e10cSrcweir virtual void InitController(::svt::CellControllerRef& rController, long nRow, sal_uInt16 nCol); 221cdf0e10cSrcweir virtual ::svt::CellController* GetController(long nRow, sal_uInt16 nCol); 222cdf0e10cSrcweir virtual sal_Bool SaveModified(); 223cdf0e10cSrcweir 224cdf0e10cSrcweir public: 225cdf0e10cSrcweir SwEntryBrowseBox(Window* pParent, const ResId& rId, 226cdf0e10cSrcweir BrowserMode nMode = 0 ); 227cdf0e10cSrcweir void ReadEntries(SvStream& rInStr); 228cdf0e10cSrcweir void WriteEntries(SvStream& rOutStr); 229cdf0e10cSrcweir 230cdf0e10cSrcweir sal_Bool IsModified()const; 231cdf0e10cSrcweir 232cdf0e10cSrcweir virtual String GetCellText( long nRow, sal_uInt16 nColumn ) const; 233cdf0e10cSrcweir }; 234cdf0e10cSrcweir 235cdf0e10cSrcweir class SwAutoMarkDlg_Impl : public ModalDialog 236cdf0e10cSrcweir { 237cdf0e10cSrcweir OKButton aOKPB; 238cdf0e10cSrcweir CancelButton aCancelPB; 239cdf0e10cSrcweir HelpButton aHelpPB; 240cdf0e10cSrcweir 241cdf0e10cSrcweir SwEntryBrowseBox aEntriesBB; 242cdf0e10cSrcweir FixedLine aEntriesFL; 243cdf0e10cSrcweir 244cdf0e10cSrcweir String sAutoMarkURL; 245cdf0e10cSrcweir const String sAutoMarkType; 246cdf0e10cSrcweir 247cdf0e10cSrcweir sal_Bool bCreateMode; 248cdf0e10cSrcweir 249cdf0e10cSrcweir DECL_LINK(OkHdl, OKButton*); 250cdf0e10cSrcweir public: 251cdf0e10cSrcweir SwAutoMarkDlg_Impl(Window* pParent, const String& rAutoMarkURL, 252cdf0e10cSrcweir const String& rAutoMarkType, sal_Bool bCreate); 253cdf0e10cSrcweir ~SwAutoMarkDlg_Impl(); 254cdf0e10cSrcweir 255cdf0e10cSrcweir }; 256cdf0e10cSrcweir /* -----------------04.11.99 11:02------------------- 257cdf0e10cSrcweir 258cdf0e10cSrcweir --------------------------------------------------*/ 259cdf0e10cSrcweir sal_uInt16 CurTOXType::GetFlatIndex() const 260cdf0e10cSrcweir { 261cdf0e10cSrcweir sal_uInt16 nRet = static_cast< sal_uInt16 >(eType); 262cdf0e10cSrcweir if(eType == TOX_USER && nIndex) 263cdf0e10cSrcweir { 264cdf0e10cSrcweir nRet = static_cast< sal_uInt16 >(TOX_AUTHORITIES + nIndex); 265cdf0e10cSrcweir } 266cdf0e10cSrcweir return nRet; 267cdf0e10cSrcweir } 268cdf0e10cSrcweir /************************************************************************* 269cdf0e10cSrcweir 270cdf0e10cSrcweir *************************************************************************/ 271cdf0e10cSrcweir #define EDIT_MINWIDTH 15 272cdf0e10cSrcweir 273cdf0e10cSrcweir /* -----------------14.06.99 12:12------------------- 274cdf0e10cSrcweir 275cdf0e10cSrcweir --------------------------------------------------*/ 276cdf0e10cSrcweir SwMultiTOXTabDialog::SwMultiTOXTabDialog(Window* pParent, const SfxItemSet& rSet, 277cdf0e10cSrcweir SwWrtShell &rShell, 278cdf0e10cSrcweir SwTOXBase* pCurTOX, 279cdf0e10cSrcweir sal_uInt16 nToxType, sal_Bool bGlobal) : 280cdf0e10cSrcweir SfxTabDialog( pParent, SW_RES(DLG_MULTI_TOX), &rSet), 281cdf0e10cSrcweir aExampleContainerWIN(this, SW_RES(WIN_EXAMPLE)), 282cdf0e10cSrcweir aExampleWIN( &aExampleContainerWIN, 0 ), 283cdf0e10cSrcweir aShowExampleCB( this, SW_RES(CB_SHOWEXAMPLE)), 284cdf0e10cSrcweir pMgr( new SwTOXMgr( &rShell ) ), 285cdf0e10cSrcweir rSh(rShell), 286cdf0e10cSrcweir pExampleFrame(0), 287cdf0e10cSrcweir pParamTOXBase(pCurTOX), 288cdf0e10cSrcweir sUserDefinedIndex(SW_RES(ST_USERDEFINEDINDEX)), 289cdf0e10cSrcweir nInitialTOXType(nToxType), 290cdf0e10cSrcweir 291cdf0e10cSrcweir bEditTOX(sal_False), 292cdf0e10cSrcweir bExampleCreated(sal_False), 293cdf0e10cSrcweir bGlobalFlag(bGlobal) 294cdf0e10cSrcweir { 295cdf0e10cSrcweir FreeResource(); 296cdf0e10cSrcweir 297cdf0e10cSrcweir aExampleWIN.SetPosSizePixel(aExampleContainerWIN.GetPosPixel(), 298cdf0e10cSrcweir aExampleContainerWIN.GetSizePixel()); 299cdf0e10cSrcweir 300cdf0e10cSrcweir eCurrentTOXType.eType = TOX_CONTENT; 301cdf0e10cSrcweir eCurrentTOXType.nIndex = 0; 302cdf0e10cSrcweir 303cdf0e10cSrcweir sal_uInt16 nUserTypeCount = rSh.GetTOXTypeCount(TOX_USER); 304cdf0e10cSrcweir nTypeCount = nUserTypeCount + 6; 305cdf0e10cSrcweir pFormArr = new SwForm*[nTypeCount]; 306cdf0e10cSrcweir pDescArr = new SwTOXDescription*[nTypeCount]; 307cdf0e10cSrcweir pxIndexSectionsArr = new SwIndexSections_Impl*[nTypeCount]; 308cdf0e10cSrcweir //the standard user index is on position TOX_USER 309cdf0e10cSrcweir //all user user indexes follow after position TOX_AUTHORITIES 310cdf0e10cSrcweir if(pCurTOX) 311cdf0e10cSrcweir { 312cdf0e10cSrcweir bEditTOX = sal_True; 313cdf0e10cSrcweir } 314cdf0e10cSrcweir for(int i = nTypeCount - 1; i > -1; i--) 315cdf0e10cSrcweir { 316cdf0e10cSrcweir pFormArr[i] = 0; 317cdf0e10cSrcweir pDescArr[i] = 0; 318cdf0e10cSrcweir pxIndexSectionsArr[i] = new SwIndexSections_Impl; 319cdf0e10cSrcweir if(pCurTOX) 320cdf0e10cSrcweir { 321cdf0e10cSrcweir eCurrentTOXType.eType = pCurTOX->GetType(); 322cdf0e10cSrcweir sal_uInt16 nArrayIndex = static_cast< sal_uInt16 >(eCurrentTOXType.eType); 323cdf0e10cSrcweir if(eCurrentTOXType.eType == TOX_USER) 324cdf0e10cSrcweir { 325cdf0e10cSrcweir //which user type is it? 326cdf0e10cSrcweir for(sal_uInt16 nUser = 0; nUser < nUserTypeCount; nUser++) 327cdf0e10cSrcweir { 328cdf0e10cSrcweir const SwTOXType* pTemp = rSh.GetTOXType(TOX_USER, nUser); 329cdf0e10cSrcweir if(pCurTOX->GetTOXType() == pTemp) 330cdf0e10cSrcweir { 331cdf0e10cSrcweir eCurrentTOXType.nIndex = nUser; 332cdf0e10cSrcweir nArrayIndex = static_cast< sal_uInt16 >(nUser > 0 ? TOX_AUTHORITIES + nUser : TOX_USER); 333cdf0e10cSrcweir break; 334cdf0e10cSrcweir } 335cdf0e10cSrcweir } 336cdf0e10cSrcweir } 337cdf0e10cSrcweir pFormArr[nArrayIndex] = new SwForm(pCurTOX->GetTOXForm()); 338cdf0e10cSrcweir pDescArr[nArrayIndex] = CreateTOXDescFromTOXBase(pCurTOX); 339cdf0e10cSrcweir if(TOX_AUTHORITIES == eCurrentTOXType.eType) 340cdf0e10cSrcweir { 341cdf0e10cSrcweir const SwAuthorityFieldType* pFType = (const SwAuthorityFieldType*) 342cdf0e10cSrcweir rSh.GetFldType(RES_AUTHORITY, aEmptyStr); 343cdf0e10cSrcweir if(pFType) 344cdf0e10cSrcweir { 345cdf0e10cSrcweir String sBrackets; 346cdf0e10cSrcweir if(pFType->GetPrefix()) 347cdf0e10cSrcweir sBrackets += pFType->GetPrefix(); 348cdf0e10cSrcweir if(pFType->GetSuffix()) 349cdf0e10cSrcweir sBrackets += pFType->GetSuffix(); 350cdf0e10cSrcweir pDescArr[nArrayIndex]->SetAuthBrackets(sBrackets); 351cdf0e10cSrcweir pDescArr[nArrayIndex]->SetAuthSequence(pFType->IsSequence()); 352cdf0e10cSrcweir } 353cdf0e10cSrcweir else 354cdf0e10cSrcweir { 355cdf0e10cSrcweir pDescArr[nArrayIndex]->SetAuthBrackets(C2S("[]")); 356cdf0e10cSrcweir } 357cdf0e10cSrcweir } 358cdf0e10cSrcweir } 359cdf0e10cSrcweir } 360cdf0e10cSrcweir SfxAbstractDialogFactory* pFact = SfxAbstractDialogFactory::Create(); 361cdf0e10cSrcweir DBG_ASSERT(pFact, "Dialogdiet fail!"); 362cdf0e10cSrcweir AddTabPage(TP_TOX_SELECT, SwTOXSelectTabPage::Create, 0); 363cdf0e10cSrcweir AddTabPage(TP_TOX_STYLES, SwTOXStylesTabPage::Create, 0); 364cdf0e10cSrcweir AddTabPage(TP_COLUMN, SwColumnPage::Create, 0); 365cdf0e10cSrcweir AddTabPage(TP_BACKGROUND, pFact->GetTabPageCreatorFunc( RID_SVXPAGE_BACKGROUND ), 0 ); 366cdf0e10cSrcweir AddTabPage(TP_TOX_ENTRY, SwTOXEntryTabPage::Create, 0); 367cdf0e10cSrcweir if(!pCurTOX) 368cdf0e10cSrcweir SetCurPageId(TP_TOX_SELECT); 369cdf0e10cSrcweir 370cdf0e10cSrcweir aShowExampleCB.SetClickHdl(LINK(this, SwMultiTOXTabDialog, ShowPreviewHdl)); 371cdf0e10cSrcweir 372cdf0e10cSrcweir aShowExampleCB.Check( SW_MOD()->GetModuleConfig()->IsShowIndexPreview()); 373cdf0e10cSrcweir 374cdf0e10cSrcweir aExampleContainerWIN.SetAccessibleName(aShowExampleCB.GetText()); 375cdf0e10cSrcweir SetViewAlign( WINDOWALIGN_LEFT ); 376cdf0e10cSrcweir // SetViewWindow does not work if the dialog is visible! 377cdf0e10cSrcweir 378cdf0e10cSrcweir if(!aShowExampleCB.IsChecked()) 379cdf0e10cSrcweir SetViewWindow( &aExampleContainerWIN ); 380cdf0e10cSrcweir 381cdf0e10cSrcweir Point aOldPos = GetPosPixel(); 382cdf0e10cSrcweir ShowPreviewHdl(0); 383cdf0e10cSrcweir Point aNewPos = GetPosPixel(); 384cdf0e10cSrcweir //72040: initial position may be left of the view - that has to be corrected 385cdf0e10cSrcweir if(aNewPos.X() < 0) 386cdf0e10cSrcweir SetPosPixel(aOldPos); 387cdf0e10cSrcweir } 388cdf0e10cSrcweir /*-- 14.06.99 13:11:40--------------------------------------------------- 389cdf0e10cSrcweir 390cdf0e10cSrcweir -----------------------------------------------------------------------*/ 391cdf0e10cSrcweir SwMultiTOXTabDialog::~SwMultiTOXTabDialog() 392cdf0e10cSrcweir { 393cdf0e10cSrcweir SW_MOD()->GetModuleConfig()->SetShowIndexPreview(aShowExampleCB.IsChecked()); 394cdf0e10cSrcweir 395cdf0e10cSrcweir for(sal_uInt16 i = 0; i < nTypeCount; i++) 396cdf0e10cSrcweir { 397cdf0e10cSrcweir delete pFormArr[i]; 398cdf0e10cSrcweir delete pDescArr[i]; 399cdf0e10cSrcweir delete pxIndexSectionsArr[i]; 400cdf0e10cSrcweir } 401cdf0e10cSrcweir delete[] pxIndexSectionsArr; 402cdf0e10cSrcweir 403cdf0e10cSrcweir delete[] pFormArr; 404cdf0e10cSrcweir delete[] pDescArr; 405cdf0e10cSrcweir delete pMgr; 406cdf0e10cSrcweir delete pExampleFrame; 407cdf0e10cSrcweir } 408cdf0e10cSrcweir /*-- 14.06.99 13:11:40--------------------------------------------------- 409cdf0e10cSrcweir 410cdf0e10cSrcweir -----------------------------------------------------------------------*/ 411cdf0e10cSrcweir void SwMultiTOXTabDialog::PageCreated( sal_uInt16 nId, SfxTabPage &rPage ) 412cdf0e10cSrcweir { 413cdf0e10cSrcweir if( TP_BACKGROUND == nId ) 414cdf0e10cSrcweir { 415cdf0e10cSrcweir SfxAllItemSet aSet(*(GetInputSetImpl()->GetPool())); 416cdf0e10cSrcweir aSet.Put (SfxUInt32Item(SID_FLAG_TYPE, SVX_SHOW_SELECTOR)); 417cdf0e10cSrcweir rPage.PageCreated(aSet); 418cdf0e10cSrcweir } 419cdf0e10cSrcweir else if(TP_COLUMN == nId ) 420cdf0e10cSrcweir { 421cdf0e10cSrcweir const SwFmtFrmSize& rSize = (const SwFmtFrmSize&)GetInputSetImpl()->Get(RES_FRM_SIZE); 422cdf0e10cSrcweir 423cdf0e10cSrcweir ((SwColumnPage&)rPage).SetPageWidth(rSize.GetWidth()); 424cdf0e10cSrcweir } 425cdf0e10cSrcweir else if(TP_TOX_ENTRY == nId) 426cdf0e10cSrcweir ((SwTOXEntryTabPage&)rPage).SetWrtShell(rSh); 427cdf0e10cSrcweir if(TP_TOX_SELECT == nId) 428cdf0e10cSrcweir { 429cdf0e10cSrcweir ((SwTOXSelectTabPage&)rPage).SetWrtShell(rSh); 430cdf0e10cSrcweir if(USHRT_MAX != nInitialTOXType) 431cdf0e10cSrcweir ((SwTOXSelectTabPage&)rPage).SelectType((TOXTypes)nInitialTOXType); 432cdf0e10cSrcweir } 433cdf0e10cSrcweir } 434cdf0e10cSrcweir /*-- 14.06.99 13:11:40--------------------------------------------------- 435cdf0e10cSrcweir 436cdf0e10cSrcweir -----------------------------------------------------------------------*/ 437cdf0e10cSrcweir short SwMultiTOXTabDialog::Ok() 438cdf0e10cSrcweir { 439cdf0e10cSrcweir short nRet = SfxTabDialog::Ok(); 440cdf0e10cSrcweir SwTOXDescription& rDesc = GetTOXDescription(eCurrentTOXType); 441cdf0e10cSrcweir SwTOXBase aNewDef(*rSh.GetDefaultTOXBase( eCurrentTOXType.eType, sal_True )); 442cdf0e10cSrcweir 443cdf0e10cSrcweir sal_uInt16 nIndex = static_cast< sal_uInt16 >(eCurrentTOXType.eType); 444cdf0e10cSrcweir if(eCurrentTOXType.eType == TOX_USER && eCurrentTOXType.nIndex) 445cdf0e10cSrcweir { 446cdf0e10cSrcweir nIndex = static_cast< sal_uInt16 >(TOX_AUTHORITIES + eCurrentTOXType.nIndex); 447cdf0e10cSrcweir } 448cdf0e10cSrcweir 449cdf0e10cSrcweir if(pFormArr[nIndex]) 450cdf0e10cSrcweir { 451cdf0e10cSrcweir rDesc.SetForm(*pFormArr[nIndex]); 452cdf0e10cSrcweir aNewDef.SetTOXForm(*pFormArr[nIndex]); 453cdf0e10cSrcweir } 454cdf0e10cSrcweir rDesc.ApplyTo(aNewDef); 455cdf0e10cSrcweir if(!bGlobalFlag) 456cdf0e10cSrcweir pMgr->UpdateOrInsertTOX( 457cdf0e10cSrcweir rDesc, 0, GetOutputItemSet()); 458cdf0e10cSrcweir else if(bEditTOX) 459cdf0e10cSrcweir pMgr->UpdateOrInsertTOX( 460cdf0e10cSrcweir rDesc, &pParamTOXBase, GetOutputItemSet()); 461cdf0e10cSrcweir 462cdf0e10cSrcweir if(!eCurrentTOXType.nIndex) 463cdf0e10cSrcweir rSh.SetDefaultTOXBase(aNewDef); 464cdf0e10cSrcweir 465cdf0e10cSrcweir return nRet; 466cdf0e10cSrcweir } 467cdf0e10cSrcweir /* -----------------16.06.99 11:59------------------- 468cdf0e10cSrcweir 469cdf0e10cSrcweir --------------------------------------------------*/ 470cdf0e10cSrcweir SwForm* SwMultiTOXTabDialog::GetForm(CurTOXType eType) 471cdf0e10cSrcweir { 472cdf0e10cSrcweir sal_uInt16 nIndex = eType.GetFlatIndex(); 473cdf0e10cSrcweir if(!pFormArr[nIndex]) 474cdf0e10cSrcweir pFormArr[nIndex] = new SwForm(eType.eType); 475cdf0e10cSrcweir return pFormArr[nIndex]; 476cdf0e10cSrcweir } 477cdf0e10cSrcweir /* -----------------09.09.99 11:29------------------- 478cdf0e10cSrcweir 479cdf0e10cSrcweir --------------------------------------------------*/ 480cdf0e10cSrcweir SwTOXDescription& SwMultiTOXTabDialog::GetTOXDescription(CurTOXType eType) 481cdf0e10cSrcweir { 482cdf0e10cSrcweir sal_uInt16 nIndex = eType.GetFlatIndex(); 483cdf0e10cSrcweir if(!pDescArr[nIndex]) 484cdf0e10cSrcweir { 485cdf0e10cSrcweir const SwTOXBase* pDef = rSh.GetDefaultTOXBase( eType.eType ); 486cdf0e10cSrcweir if(pDef) 487cdf0e10cSrcweir pDescArr[nIndex] = CreateTOXDescFromTOXBase(pDef); 488cdf0e10cSrcweir else 489cdf0e10cSrcweir { 490cdf0e10cSrcweir pDescArr[nIndex] = new SwTOXDescription(eType.eType); 491cdf0e10cSrcweir if(eType.eType == TOX_USER) 492cdf0e10cSrcweir pDescArr[nIndex]->SetTitle(sUserDefinedIndex); 493cdf0e10cSrcweir else 494cdf0e10cSrcweir pDescArr[nIndex]->SetTitle( 495cdf0e10cSrcweir rSh.GetTOXType(eType.eType, 0)->GetTypeName()); 496cdf0e10cSrcweir } 497cdf0e10cSrcweir if(TOX_AUTHORITIES == eType.eType) 498cdf0e10cSrcweir { 499cdf0e10cSrcweir const SwAuthorityFieldType* pFType = (const SwAuthorityFieldType*) 500cdf0e10cSrcweir rSh.GetFldType(RES_AUTHORITY, aEmptyStr); 501cdf0e10cSrcweir if(pFType) 502cdf0e10cSrcweir { 503cdf0e10cSrcweir String sBrackets(pFType->GetPrefix()); 504cdf0e10cSrcweir sBrackets += pFType->GetSuffix(); 505cdf0e10cSrcweir pDescArr[nIndex]->SetAuthBrackets(sBrackets); 506cdf0e10cSrcweir pDescArr[nIndex]->SetAuthSequence(pFType->IsSequence()); 507cdf0e10cSrcweir } 508cdf0e10cSrcweir else 509cdf0e10cSrcweir { 510cdf0e10cSrcweir pDescArr[nIndex]->SetAuthBrackets(C2S("[]")); 511cdf0e10cSrcweir } 512cdf0e10cSrcweir } 513cdf0e10cSrcweir else if(TOX_INDEX == eType.eType) 514cdf0e10cSrcweir pDescArr[nIndex]->SetMainEntryCharStyle(SW_RESSTR(STR_POOLCHR_IDX_MAIN_ENTRY)); 515cdf0e10cSrcweir 516cdf0e10cSrcweir } 517cdf0e10cSrcweir return *pDescArr[nIndex]; 518cdf0e10cSrcweir } 519cdf0e10cSrcweir /* -----------------09.09.99 11:36------------------- 520cdf0e10cSrcweir 521cdf0e10cSrcweir --------------------------------------------------*/ 522cdf0e10cSrcweir SwTOXDescription* SwMultiTOXTabDialog::CreateTOXDescFromTOXBase( 523cdf0e10cSrcweir const SwTOXBase*pCurTOX) 524cdf0e10cSrcweir { 525cdf0e10cSrcweir SwTOXDescription * pDesc = new SwTOXDescription(pCurTOX->GetType()); 526cdf0e10cSrcweir for(sal_uInt16 i = 0; i < MAXLEVEL; i++) 527cdf0e10cSrcweir pDesc->SetStyleNames(pCurTOX->GetStyleNames(i), i); 528cdf0e10cSrcweir pDesc->SetAutoMarkURL(rSh.GetTOIAutoMarkURL()); 529cdf0e10cSrcweir pDesc->SetTitle(pCurTOX->GetTitle()); 530cdf0e10cSrcweir 531cdf0e10cSrcweir 532cdf0e10cSrcweir pDesc->SetContentOptions(pCurTOX->GetCreateType()); 533cdf0e10cSrcweir if(pDesc->GetTOXType() == TOX_INDEX) 534cdf0e10cSrcweir pDesc->SetIndexOptions(pCurTOX->GetOptions()); 535cdf0e10cSrcweir pDesc->SetMainEntryCharStyle(pCurTOX->GetMainEntryCharStyle()); 536cdf0e10cSrcweir if(pDesc->GetTOXType() != TOX_INDEX) 537cdf0e10cSrcweir pDesc->SetLevel((sal_uInt8)pCurTOX->GetLevel()); 538cdf0e10cSrcweir pDesc->SetCreateFromObjectNames(pCurTOX->IsFromObjectNames()); 539cdf0e10cSrcweir pDesc->SetSequenceName(pCurTOX->GetSequenceName()); 540cdf0e10cSrcweir pDesc->SetCaptionDisplay(pCurTOX->GetCaptionDisplay()); 541cdf0e10cSrcweir pDesc->SetFromChapter(pCurTOX->IsFromChapter()); 542cdf0e10cSrcweir pDesc->SetReadonly(pCurTOX->IsProtected()); 543cdf0e10cSrcweir pDesc->SetOLEOptions(pCurTOX->GetOLEOptions()); 544cdf0e10cSrcweir pDesc->SetLevelFromChapter(pCurTOX->IsLevelFromChapter()); 545cdf0e10cSrcweir pDesc->SetLanguage(pCurTOX->GetLanguage()); 546cdf0e10cSrcweir pDesc->SetSortAlgorithm(pCurTOX->GetSortAlgorithm()); 547cdf0e10cSrcweir return pDesc; 548cdf0e10cSrcweir } 549cdf0e10cSrcweir 550cdf0e10cSrcweir /* -----------------------------29.12.99 09:53-------------------------------- 551cdf0e10cSrcweir 552cdf0e10cSrcweir ---------------------------------------------------------------------------*/ 553cdf0e10cSrcweir 554cdf0e10cSrcweir IMPL_LINK( SwMultiTOXTabDialog, ShowPreviewHdl, CheckBox *, pBox ) 555cdf0e10cSrcweir { 556cdf0e10cSrcweir if(aShowExampleCB.IsChecked()) 557cdf0e10cSrcweir { 558cdf0e10cSrcweir if(!pExampleFrame && !bExampleCreated) 559cdf0e10cSrcweir { 560cdf0e10cSrcweir bExampleCreated = sal_True; 561cdf0e10cSrcweir String sTemplate( String::CreateFromAscii( 562cdf0e10cSrcweir RTL_CONSTASCII_STRINGPARAM("internal")) ); 563cdf0e10cSrcweir sTemplate += INET_PATH_TOKEN; 564cdf0e10cSrcweir sTemplate.AppendAscii( RTL_CONSTASCII_STRINGPARAM("idxexample") ); 565cdf0e10cSrcweir String sTemplateWithoutExt( sTemplate ); 566cdf0e10cSrcweir #ifndef MAC_WITHOUT_EXT 567cdf0e10cSrcweir sTemplate.AppendAscii( RTL_CONSTASCII_STRINGPARAM(".odt") ); 568cdf0e10cSrcweir #endif 569cdf0e10cSrcweir 570cdf0e10cSrcweir SvtPathOptions aOpt; 571cdf0e10cSrcweir // 6.0 (extension .sxw) 572cdf0e10cSrcweir sal_Bool bExist = aOpt.SearchFile( sTemplate, SvtPathOptions::PATH_TEMPLATE ); 573cdf0e10cSrcweir 574cdf0e10cSrcweir #ifndef MAC_WITHOUT_EXT 575cdf0e10cSrcweir if( !bExist ) 576cdf0e10cSrcweir { 577cdf0e10cSrcweir // 6.0 (extension .sxw) 578cdf0e10cSrcweir sTemplate = sTemplateWithoutExt; 579cdf0e10cSrcweir sTemplate.AppendAscii( RTL_CONSTASCII_STRINGPARAM(".sxw") ); 580cdf0e10cSrcweir bExist = aOpt.SearchFile( sTemplate, SvtPathOptions::PATH_TEMPLATE ); 581cdf0e10cSrcweir } 582cdf0e10cSrcweir if( !bExist ) 583cdf0e10cSrcweir { 584cdf0e10cSrcweir // 5.0 (extension .vor) 585cdf0e10cSrcweir sTemplate = sTemplateWithoutExt; 586cdf0e10cSrcweir sTemplate.AppendAscii( RTL_CONSTASCII_STRINGPARAM(".sdw") ); 587cdf0e10cSrcweir bExist = aOpt.SearchFile( sTemplate, SvtPathOptions::PATH_TEMPLATE ); 588cdf0e10cSrcweir } 589cdf0e10cSrcweir #endif 590cdf0e10cSrcweir 591cdf0e10cSrcweir if(!bExist) 592cdf0e10cSrcweir { 593cdf0e10cSrcweir String sInfo(SW_RES(STR_FILE_NOT_FOUND)); 594cdf0e10cSrcweir sInfo.SearchAndReplaceAscii( "%1", sTemplate ); 595cdf0e10cSrcweir sInfo.SearchAndReplaceAscii( "%2", aOpt.GetTemplatePath() ); 596cdf0e10cSrcweir InfoBox aInfo(GetParent(), sInfo); 597cdf0e10cSrcweir aInfo.Execute(); 598cdf0e10cSrcweir } 599cdf0e10cSrcweir else 600cdf0e10cSrcweir { 601cdf0e10cSrcweir Link aLink(LINK(this, SwMultiTOXTabDialog, CreateExample_Hdl)); 602cdf0e10cSrcweir pExampleFrame = new SwOneExampleFrame( 603cdf0e10cSrcweir aExampleWIN, EX_SHOW_ONLINE_LAYOUT, &aLink, &sTemplate); 604cdf0e10cSrcweir 605cdf0e10cSrcweir if(!pExampleFrame->IsServiceAvailable()) 606cdf0e10cSrcweir { 607cdf0e10cSrcweir pExampleFrame->CreateErrorMessage(0); 608cdf0e10cSrcweir } 609cdf0e10cSrcweir } 610cdf0e10cSrcweir aShowExampleCB.Show(pExampleFrame && pExampleFrame->IsServiceAvailable()); 611cdf0e10cSrcweir } 612cdf0e10cSrcweir } 613cdf0e10cSrcweir sal_Bool bSetViewWindow = aShowExampleCB.IsChecked() 614cdf0e10cSrcweir && pExampleFrame && pExampleFrame->IsServiceAvailable(); 615cdf0e10cSrcweir 616cdf0e10cSrcweir aExampleContainerWIN.Show( bSetViewWindow ); 617cdf0e10cSrcweir SetViewWindow( bSetViewWindow ? &aExampleContainerWIN : 0 ); 618cdf0e10cSrcweir 619cdf0e10cSrcweir Window *pTopmostParent = this; 620cdf0e10cSrcweir while(pTopmostParent->GetParent()) 621cdf0e10cSrcweir pTopmostParent = pTopmostParent->GetParent(); 622cdf0e10cSrcweir ::Rectangle aRect(GetClientWindowExtentsRelative(pTopmostParent)); 623cdf0e10cSrcweir ::Point aPos = aRect.TopLeft(); 624cdf0e10cSrcweir Size aSize = GetSizePixel(); 625cdf0e10cSrcweir if(pBox) 626cdf0e10cSrcweir AdjustLayout(); 627cdf0e10cSrcweir long nDiffWidth = GetSizePixel().Width() - aSize.Width(); 628cdf0e10cSrcweir aPos.X() -= nDiffWidth; 629cdf0e10cSrcweir SetPosPixel(aPos); 630cdf0e10cSrcweir 631cdf0e10cSrcweir return 0; 632cdf0e10cSrcweir } 633cdf0e10cSrcweir 634cdf0e10cSrcweir 635cdf0e10cSrcweir /* -----------------05.07.99 09:49------------------- 636cdf0e10cSrcweir 637cdf0e10cSrcweir --------------------------------------------------*/ 638cdf0e10cSrcweir sal_Bool SwMultiTOXTabDialog::IsNoNum(SwWrtShell& rSh, const String& rName) 639cdf0e10cSrcweir { 640cdf0e10cSrcweir SwTxtFmtColl* pColl = rSh.GetParaStyle(rName); 641cdf0e10cSrcweir //if(pColl && pColl->GetOutlineLevel() == NO_NUMBERING) //#outline level,zhaojianwei 642cdf0e10cSrcweir if(pColl && ! pColl->IsAssignedToListLevelOfOutlineStyle()) //<-end,zhaojianwei 643cdf0e10cSrcweir return sal_True; 644cdf0e10cSrcweir 645cdf0e10cSrcweir sal_uInt16 nId = SwStyleNameMapper::GetPoolIdFromUIName(rName, nsSwGetPoolIdFromName::GET_POOLID_TXTCOLL); 646cdf0e10cSrcweir if(nId != USHRT_MAX && 647cdf0e10cSrcweir //rSh.GetTxtCollFromPool(nId)->GetOutlineLevel() == NO_NUMBERING) //#outline level,zhaojianwei 648cdf0e10cSrcweir ! rSh.GetTxtCollFromPool(nId)->IsAssignedToListLevelOfOutlineStyle()) //<-end,zhaojianwei 649cdf0e10cSrcweir return sal_True; 650cdf0e10cSrcweir 651cdf0e10cSrcweir return sal_False; 652cdf0e10cSrcweir } 653cdf0e10cSrcweir /* -----------------14.07.99 16:01------------------- 654cdf0e10cSrcweir 655cdf0e10cSrcweir --------------------------------------------------*/ 656cdf0e10cSrcweir class SwIndexTreeLB : public SvTreeListBox 657cdf0e10cSrcweir { 658cdf0e10cSrcweir const HeaderBar* pHeaderBar; 659cdf0e10cSrcweir public: 660cdf0e10cSrcweir SwIndexTreeLB(Window* pWin, const ResId& rResId) : 661cdf0e10cSrcweir SvTreeListBox(pWin, rResId), pHeaderBar(0){} 662cdf0e10cSrcweir 663cdf0e10cSrcweir virtual void KeyInput( const KeyEvent& rKEvt ); 664cdf0e10cSrcweir virtual long GetTabPos( SvLBoxEntry*, SvLBoxTab* ); 665cdf0e10cSrcweir void SetHeaderBar(const HeaderBar* pHB) {pHeaderBar = pHB;} 666cdf0e10cSrcweir }; 667cdf0e10cSrcweir /* -----------------14.07.99 16:03------------------- 668cdf0e10cSrcweir 669cdf0e10cSrcweir --------------------------------------------------*/ 670cdf0e10cSrcweir long SwIndexTreeLB::GetTabPos( SvLBoxEntry* pEntry, SvLBoxTab* pTab) 671cdf0e10cSrcweir { 672cdf0e10cSrcweir long nData = (long)pEntry->GetUserData(); 673cdf0e10cSrcweir if(nData != USHRT_MAX) 674cdf0e10cSrcweir { 675cdf0e10cSrcweir long nPos = pHeaderBar->GetItemRect( static_cast< sal_uInt16 >(101 + nData) ).TopLeft().X(); 676cdf0e10cSrcweir nData = nPos; 677cdf0e10cSrcweir } 678cdf0e10cSrcweir else 679cdf0e10cSrcweir nData = 0; 680cdf0e10cSrcweir nData += pTab->GetPos(); 681cdf0e10cSrcweir return nData; 682cdf0e10cSrcweir } 683cdf0e10cSrcweir /* -----------------25.08.99 11:14------------------- 684cdf0e10cSrcweir 685cdf0e10cSrcweir --------------------------------------------------*/ 686cdf0e10cSrcweir void SwIndexTreeLB::KeyInput( const KeyEvent& rKEvt ) 687cdf0e10cSrcweir { 688cdf0e10cSrcweir SvLBoxEntry* pEntry = FirstSelected(); 689cdf0e10cSrcweir KeyCode aCode = rKEvt.GetKeyCode(); 690cdf0e10cSrcweir sal_Bool bChanged = sal_False; 691cdf0e10cSrcweir if(pEntry) 692cdf0e10cSrcweir { 693cdf0e10cSrcweir long nLevel = (long)pEntry->GetUserData(); 694cdf0e10cSrcweir if(aCode.GetCode() == KEY_ADD ) 695cdf0e10cSrcweir { 696cdf0e10cSrcweir if(nLevel < MAXLEVEL - 1) 697cdf0e10cSrcweir nLevel++; 698cdf0e10cSrcweir else if(nLevel == USHRT_MAX) 699cdf0e10cSrcweir nLevel = 0; 700cdf0e10cSrcweir bChanged = sal_True; 701cdf0e10cSrcweir } 702cdf0e10cSrcweir else if(aCode.GetCode() == KEY_SUBTRACT) 703cdf0e10cSrcweir { 704cdf0e10cSrcweir if(!nLevel) 705cdf0e10cSrcweir nLevel = USHRT_MAX; 706cdf0e10cSrcweir else if(nLevel != USHRT_MAX) 707cdf0e10cSrcweir nLevel--; 708cdf0e10cSrcweir bChanged = sal_True; 709cdf0e10cSrcweir } 710cdf0e10cSrcweir if(bChanged) 711cdf0e10cSrcweir { 712cdf0e10cSrcweir pEntry->SetUserData((void*)nLevel); 713cdf0e10cSrcweir Invalidate(); 714cdf0e10cSrcweir } 715cdf0e10cSrcweir } 716cdf0e10cSrcweir if(!bChanged) 717cdf0e10cSrcweir SvTreeListBox::KeyInput(rKEvt); 718cdf0e10cSrcweir } 719cdf0e10cSrcweir 720cdf0e10cSrcweir /* -----------------16.07.99 10:01------------------- 721cdf0e10cSrcweir 722cdf0e10cSrcweir --------------------------------------------------*/ 723cdf0e10cSrcweir class SwHeaderTree : public Control 724cdf0e10cSrcweir { 725cdf0e10cSrcweir HeaderBar aStylesHB; 726cdf0e10cSrcweir SwIndexTreeLB aStylesTLB; 727cdf0e10cSrcweir 728cdf0e10cSrcweir public: 729cdf0e10cSrcweir SwHeaderTree(Window* pParent, const ResId rResId); 730cdf0e10cSrcweir 731cdf0e10cSrcweir HeaderBar& GetHeaderBar() {return aStylesHB;} 732cdf0e10cSrcweir SwIndexTreeLB& GetTreeListBox() { return aStylesTLB;} 733cdf0e10cSrcweir 734cdf0e10cSrcweir virtual void GetFocus(); 735cdf0e10cSrcweir }; 736cdf0e10cSrcweir /* -----------------16.07.99 10:11------------------- 737cdf0e10cSrcweir 738cdf0e10cSrcweir --------------------------------------------------*/ 739cdf0e10cSrcweir SwHeaderTree::SwHeaderTree(Window* pParent, const ResId rResId) : 740cdf0e10cSrcweir Control(pParent, rResId), 741cdf0e10cSrcweir aStylesHB( this, ResId(HB_STYLES, *rResId.GetResMgr())), 742cdf0e10cSrcweir aStylesTLB( this, ResId(TLB_STYLES, *rResId.GetResMgr())) 743cdf0e10cSrcweir { 744cdf0e10cSrcweir FreeResource(); 745cdf0e10cSrcweir aStylesHB.SetStyle(aStylesHB.GetStyle()|WB_BUTTONSTYLE|WB_TABSTOP|WB_BORDER); 746cdf0e10cSrcweir Size aHBSize(aStylesHB.GetSizePixel()); 747cdf0e10cSrcweir aHBSize.Height() = aStylesHB.CalcWindowSizePixel().Height(); 748cdf0e10cSrcweir aStylesHB.SetSizePixel(aHBSize); 749cdf0e10cSrcweir aStylesTLB.SetPosPixel(Point(0, aHBSize.Height())); 750cdf0e10cSrcweir Size aTLBSize(aStylesHB.GetSizePixel()); 751cdf0e10cSrcweir aTLBSize.Height() = GetOutputSizePixel().Height() - aHBSize.Height(); 752cdf0e10cSrcweir aStylesTLB.SetSizePixel(aTLBSize); 753cdf0e10cSrcweir aStylesTLB.SetHeaderBar(&aStylesHB); 754cdf0e10cSrcweir } 755cdf0e10cSrcweir /* -----------------25.08.99 10:38------------------- 756cdf0e10cSrcweir 757cdf0e10cSrcweir --------------------------------------------------*/ 758cdf0e10cSrcweir void SwHeaderTree::GetFocus() 759cdf0e10cSrcweir { 760cdf0e10cSrcweir Control::GetFocus(); 761cdf0e10cSrcweir aStylesTLB.GrabFocus(); 762cdf0e10cSrcweir } 763cdf0e10cSrcweir /* -----------------13.07.99 15:29------------------- 764cdf0e10cSrcweir 765cdf0e10cSrcweir --------------------------------------------------*/ 766cdf0e10cSrcweir class SwAddStylesDlg_Impl : public SfxModalDialog 767cdf0e10cSrcweir { 768cdf0e10cSrcweir OKButton aOk; 769cdf0e10cSrcweir CancelButton aCancel; 770cdf0e10cSrcweir HelpButton aHelp; 771cdf0e10cSrcweir 772cdf0e10cSrcweir FixedLine aStylesFL; 773cdf0e10cSrcweir SwHeaderTree aHeaderTree; 774cdf0e10cSrcweir ImageButton aLeftPB; 775cdf0e10cSrcweir ImageButton aRightPB; 776cdf0e10cSrcweir 777cdf0e10cSrcweir String sHBFirst; 778cdf0e10cSrcweir String* pStyleArr; 779cdf0e10cSrcweir 780cdf0e10cSrcweir DECL_LINK(OkHdl, OKButton*); 781cdf0e10cSrcweir DECL_LINK(LeftRightHdl, PushButton*); 782cdf0e10cSrcweir DECL_LINK(HeaderDragHdl, HeaderBar*); 783cdf0e10cSrcweir 784cdf0e10cSrcweir public: 785cdf0e10cSrcweir SwAddStylesDlg_Impl(Window* pParent, SwWrtShell& rWrtSh, String rStringArr[]); 786cdf0e10cSrcweir ~SwAddStylesDlg_Impl(); 787cdf0e10cSrcweir }; 788cdf0e10cSrcweir /* -----------------13.07.99 15:39------------------- 789cdf0e10cSrcweir 790cdf0e10cSrcweir --------------------------------------------------*/ 791cdf0e10cSrcweir SwAddStylesDlg_Impl::SwAddStylesDlg_Impl(Window* pParent, 792cdf0e10cSrcweir SwWrtShell& rWrtSh, String rStringArr[]) : 793cdf0e10cSrcweir SfxModalDialog(pParent, SW_RES(DLG_ADD_IDX_STYLES)), 794cdf0e10cSrcweir aOk( this, SW_RES(PB_OK )), 795cdf0e10cSrcweir aCancel( this, SW_RES(PB_CANCEL )), 796cdf0e10cSrcweir aHelp( this, SW_RES(PB_HELP )), 797cdf0e10cSrcweir 798cdf0e10cSrcweir aStylesFL( this, SW_RES(FL_STYLES )), 799cdf0e10cSrcweir aHeaderTree(this, SW_RES(TR_HEADER )), 800cdf0e10cSrcweir aLeftPB( this, SW_RES(PB_LEFT )), 801cdf0e10cSrcweir aRightPB( this, SW_RES(PB_RIGHT )), 802cdf0e10cSrcweir 803cdf0e10cSrcweir sHBFirst( SW_RES(ST_HB_FIRST)), 804cdf0e10cSrcweir pStyleArr(rStringArr) 805cdf0e10cSrcweir { 806cdf0e10cSrcweir FreeResource(); 807cdf0e10cSrcweir 808cdf0e10cSrcweir aHeaderTree.SetAccessibleRelationMemberOf(&aStylesFL); 809cdf0e10cSrcweir aLeftPB.SetAccessibleRelationMemberOf(&aStylesFL); 810cdf0e10cSrcweir aRightPB.SetAccessibleRelationMemberOf(&aStylesFL); 811cdf0e10cSrcweir 812cdf0e10cSrcweir aLeftPB.SetModeImage( Image( SW_RES( IMG_ALL_LEFT_HC ) ), BMP_COLOR_HIGHCONTRAST ); 813cdf0e10cSrcweir aRightPB.SetModeImage( Image( SW_RES( IMG_ALL_RIGHT_HC ) ), BMP_COLOR_HIGHCONTRAST ); 814cdf0e10cSrcweir 815cdf0e10cSrcweir aOk.SetClickHdl(LINK(this, SwAddStylesDlg_Impl, OkHdl)); 816cdf0e10cSrcweir aLeftPB.SetClickHdl(LINK(this, SwAddStylesDlg_Impl, LeftRightHdl)); 817cdf0e10cSrcweir aRightPB.SetClickHdl(LINK(this, SwAddStylesDlg_Impl, LeftRightHdl)); 818cdf0e10cSrcweir 819cdf0e10cSrcweir HeaderBar& rHB = aHeaderTree.GetHeaderBar(); 820cdf0e10cSrcweir rHB.SetEndDragHdl(LINK(this, SwAddStylesDlg_Impl, HeaderDragHdl)); 821cdf0e10cSrcweir 822cdf0e10cSrcweir long nWidth = rHB.GetSizePixel().Width(); 823cdf0e10cSrcweir sal_uInt16 i; 824cdf0e10cSrcweir 825cdf0e10cSrcweir nWidth /= 14; 826cdf0e10cSrcweir nWidth--; 827cdf0e10cSrcweir rHB.InsertItem( 100, sHBFirst, 4 * nWidth ); 828cdf0e10cSrcweir for( i = 1; i <= MAXLEVEL; i++) 829cdf0e10cSrcweir rHB.InsertItem( 100 + i, String::CreateFromInt32(i), nWidth ); 830cdf0e10cSrcweir rHB.Show(); 831cdf0e10cSrcweir 832cdf0e10cSrcweir SwIndexTreeLB& rTLB = aHeaderTree.GetTreeListBox(); 833cdf0e10cSrcweir rTLB.SetStyle(rTLB.GetStyle()|WB_CLIPCHILDREN|WB_SORT); 834cdf0e10cSrcweir //aStylesTLB.SetSelectHdl(LINK(this, SwAddStylesDlg_Impl, SelectHdl)); 835cdf0e10cSrcweir rTLB.GetModel()->SetSortMode(SortAscending); 836cdf0e10cSrcweir for(i = 0; i < MAXLEVEL; ++i) 837cdf0e10cSrcweir { 838cdf0e10cSrcweir String sStyles(rStringArr[i]); 839cdf0e10cSrcweir for(sal_uInt16 nToken = 0; nToken < sStyles.GetTokenCount(TOX_STYLE_DELIMITER); nToken++) 840cdf0e10cSrcweir { 841cdf0e10cSrcweir String sTmp(sStyles.GetToken(nToken, TOX_STYLE_DELIMITER)); 842cdf0e10cSrcweir SvLBoxEntry* pEntry = rTLB.InsertEntry(sTmp); 843cdf0e10cSrcweir pEntry->SetUserData(reinterpret_cast<void*>(i)); 844cdf0e10cSrcweir } 845cdf0e10cSrcweir } 846cdf0e10cSrcweir // now the other styles 847cdf0e10cSrcweir // 848cdf0e10cSrcweir const SwTxtFmtColl *pColl = 0; 849cdf0e10cSrcweir const sal_uInt16 nSz = rWrtSh.GetTxtFmtCollCount(); 850cdf0e10cSrcweir 851cdf0e10cSrcweir for ( sal_uInt16 j = 0;j < nSz; ++j ) 852cdf0e10cSrcweir { 853cdf0e10cSrcweir pColl = &rWrtSh.GetTxtFmtColl(j); 854cdf0e10cSrcweir if(pColl->IsDefault()) 855cdf0e10cSrcweir continue; 856cdf0e10cSrcweir 857cdf0e10cSrcweir const String& rName = pColl->GetName(); 858cdf0e10cSrcweir 859cdf0e10cSrcweir if(rName.Len() > 0) 860cdf0e10cSrcweir { 861cdf0e10cSrcweir SvLBoxEntry* pEntry = rTLB.First(); 862cdf0e10cSrcweir sal_Bool bFound = sal_False; 863cdf0e10cSrcweir while(pEntry && !bFound) 864cdf0e10cSrcweir { 865cdf0e10cSrcweir if(rTLB.GetEntryText(pEntry) == rName) 866cdf0e10cSrcweir bFound = sal_True; 867cdf0e10cSrcweir pEntry = rTLB.Next(pEntry); 868cdf0e10cSrcweir } 869cdf0e10cSrcweir if(!bFound) 870cdf0e10cSrcweir { 871cdf0e10cSrcweir rTLB.InsertEntry(rName)->SetUserData((void*)USHRT_MAX); 872cdf0e10cSrcweir } 873cdf0e10cSrcweir } 874cdf0e10cSrcweir } 875cdf0e10cSrcweir rTLB.GetModel()->Resort(); 876cdf0e10cSrcweir } 877cdf0e10cSrcweir 878cdf0e10cSrcweir /* -----------------13.07.99 15:39------------------- 879cdf0e10cSrcweir 880cdf0e10cSrcweir --------------------------------------------------*/ 881cdf0e10cSrcweir SwAddStylesDlg_Impl::~SwAddStylesDlg_Impl() 882cdf0e10cSrcweir { 883cdf0e10cSrcweir } 884cdf0e10cSrcweir /* -----------------13.07.99 15:39------------------- 885cdf0e10cSrcweir 886cdf0e10cSrcweir --------------------------------------------------*/ 887cdf0e10cSrcweir IMPL_LINK(SwAddStylesDlg_Impl, OkHdl, OKButton*, EMPTYARG) 888cdf0e10cSrcweir { 889cdf0e10cSrcweir for(sal_uInt16 i = 0; i < MAXLEVEL; i++) 890cdf0e10cSrcweir pStyleArr[i].Erase(); 891cdf0e10cSrcweir 892cdf0e10cSrcweir SwIndexTreeLB& rTLB = aHeaderTree.GetTreeListBox(); 893cdf0e10cSrcweir SvLBoxEntry* pEntry = rTLB.First(); 894cdf0e10cSrcweir while(pEntry) 895cdf0e10cSrcweir { 896cdf0e10cSrcweir long nLevel = (long)pEntry->GetUserData(); 897cdf0e10cSrcweir if(nLevel != USHRT_MAX) 898cdf0e10cSrcweir { 899cdf0e10cSrcweir String sName(rTLB.GetEntryText(pEntry)); 900cdf0e10cSrcweir if(pStyleArr[nLevel].Len()) 901cdf0e10cSrcweir pStyleArr[nLevel] += TOX_STYLE_DELIMITER; 902cdf0e10cSrcweir pStyleArr[nLevel] += sName; 903cdf0e10cSrcweir } 904cdf0e10cSrcweir pEntry = rTLB.Next(pEntry); 905cdf0e10cSrcweir } 906cdf0e10cSrcweir 907cdf0e10cSrcweir //TODO write back style names 908cdf0e10cSrcweir EndDialog(RET_OK); 909cdf0e10cSrcweir return 0; 910cdf0e10cSrcweir } 911cdf0e10cSrcweir /* -----------------16.07.99 09:27------------------- 912cdf0e10cSrcweir 913cdf0e10cSrcweir --------------------------------------------------*/ 914cdf0e10cSrcweir IMPL_LINK(SwAddStylesDlg_Impl, HeaderDragHdl, HeaderBar*, EMPTYARG) 915cdf0e10cSrcweir { 916cdf0e10cSrcweir aHeaderTree.GetTreeListBox().Invalidate(); 917cdf0e10cSrcweir return 0; 918cdf0e10cSrcweir } 919cdf0e10cSrcweir /* -----------------13.07.99 15:39------------------- 920cdf0e10cSrcweir 921cdf0e10cSrcweir --------------------------------------------------*/ 922cdf0e10cSrcweir IMPL_LINK(SwAddStylesDlg_Impl, LeftRightHdl, PushButton*, pBtn) 923cdf0e10cSrcweir { 924cdf0e10cSrcweir sal_Bool bLeft = pBtn == &aLeftPB; 925cdf0e10cSrcweir SvLBoxEntry* pEntry = aHeaderTree.GetTreeListBox().FirstSelected(); 926cdf0e10cSrcweir if(pEntry) 927cdf0e10cSrcweir { 928cdf0e10cSrcweir long nLevel = (long)pEntry->GetUserData(); 929cdf0e10cSrcweir if(bLeft) 930cdf0e10cSrcweir { 931cdf0e10cSrcweir if(!nLevel) 932cdf0e10cSrcweir nLevel = USHRT_MAX; 933cdf0e10cSrcweir else if(nLevel != USHRT_MAX) 934cdf0e10cSrcweir nLevel--; 935cdf0e10cSrcweir } 936cdf0e10cSrcweir else 937cdf0e10cSrcweir { 938cdf0e10cSrcweir if(nLevel < MAXLEVEL - 1) 939cdf0e10cSrcweir nLevel++; 940cdf0e10cSrcweir else if(nLevel == USHRT_MAX) 941cdf0e10cSrcweir nLevel = 0; 942cdf0e10cSrcweir } 943cdf0e10cSrcweir pEntry->SetUserData((void*)nLevel); 944cdf0e10cSrcweir aHeaderTree.GetTreeListBox().Invalidate(); 945cdf0e10cSrcweir } 946cdf0e10cSrcweir return 0; 947cdf0e10cSrcweir } 948cdf0e10cSrcweir 949cdf0e10cSrcweir /*-- 14.06.99 13:11:40--------------------------------------------------- 950cdf0e10cSrcweir 951cdf0e10cSrcweir -----------------------------------------------------------------------*/ 952cdf0e10cSrcweir SwTOXSelectTabPage::SwTOXSelectTabPage(Window* pParent, const SfxItemSet& rAttrSet) : 953cdf0e10cSrcweir SfxTabPage(pParent, SW_RES(TP_TOX_SELECT), rAttrSet), 954cdf0e10cSrcweir 955cdf0e10cSrcweir aTypeTitleFL( this, SW_RES(FL_TYPETITLE )), 956cdf0e10cSrcweir aTitleFT( this, SW_RES(FT_TITLE )), 957cdf0e10cSrcweir aTitleED( this, SW_RES(ED_TITLE )), 958cdf0e10cSrcweir aTypeFT( this, SW_RES(FT_TYPE )), 959cdf0e10cSrcweir aTypeLB( this, SW_RES(LB_TYPE )), 960cdf0e10cSrcweir aReadOnlyCB( this, SW_RES(CB_READONLY )), 961cdf0e10cSrcweir 962cdf0e10cSrcweir aAreaFL( this, SW_RES(FL_AREA )), 963cdf0e10cSrcweir aAreaFT( this, SW_RES(FT_AREA )), 964cdf0e10cSrcweir aAreaLB( this, SW_RES(LB_AREA )), 965cdf0e10cSrcweir aLevelFT( this, SW_RES(FT_LEVEL )), 966cdf0e10cSrcweir aLevelNF( this, SW_RES(NF_LEVEL )), 967cdf0e10cSrcweir 968cdf0e10cSrcweir aCreateFromFL( this, SW_RES(FL_CREATEFROM )), 969cdf0e10cSrcweir aFromHeadingsCB( this, SW_RES(CB_FROMHEADINGS )), 970cdf0e10cSrcweir // aChapterDlgPB( this, SW_RES(PB_CHAPTERDLG )),//#outline level,removed by zhaojianwei 971cdf0e10cSrcweir aAddStylesCB( this, SW_RES(CB_ADDSTYLES )), 972cdf0e10cSrcweir aAddStylesPB( this, SW_RES(PB_ADDSTYLES )), 973cdf0e10cSrcweir 974cdf0e10cSrcweir aFromTablesCB( this, SW_RES(CB_FROMTABLES )), 975cdf0e10cSrcweir aFromFramesCB( this, SW_RES(CB_FROMFRAMES )), 976cdf0e10cSrcweir aFromGraphicsCB( this, SW_RES(CB_FROMGRAPHICS )), 977cdf0e10cSrcweir aFromOLECB( this, SW_RES(CB_FROMOLE )), 978cdf0e10cSrcweir aLevelFromChapterCB(this, SW_RES(CB_LEVELFROMCHAPTER )), 979cdf0e10cSrcweir 980cdf0e10cSrcweir aFromCaptionsRB( this, SW_RES(RB_FROMCAPTIONS )), 981cdf0e10cSrcweir aFromObjectNamesRB( this, SW_RES(RB_FROMOBJECTNAMES )), 982cdf0e10cSrcweir 983cdf0e10cSrcweir aCaptionSequenceFT( this, SW_RES(FT_CAPTIONSEQUENCE )), 984cdf0e10cSrcweir aCaptionSequenceLB( this, SW_RES(LB_CAPTIONSEQUENCE )), 985cdf0e10cSrcweir aDisplayTypeFT( this, SW_RES(FT_DISPLAYTYPE )), 986cdf0e10cSrcweir aDisplayTypeLB( this, SW_RES(LB_DISPLAYTYPE )), 987cdf0e10cSrcweir 988cdf0e10cSrcweir aTOXMarksCB( this, SW_RES(CB_TOXMARKS )), 989cdf0e10cSrcweir 990cdf0e10cSrcweir aIdxOptionsFL( this, SW_RES(FL_IDXOPTIONS )), 991cdf0e10cSrcweir aCollectSameCB( this, SW_RES(CB_COLLECTSAME )), 992cdf0e10cSrcweir aUseFFCB( this, SW_RES(CB_USEFF )), 993cdf0e10cSrcweir aUseDashCB( this, SW_RES(CB_USE_DASH )), 994cdf0e10cSrcweir aCaseSensitiveCB( this, SW_RES(CB_CASESENSITIVE )), 995cdf0e10cSrcweir aInitialCapsCB( this, SW_RES(CB_INITIALCAPS )), 996cdf0e10cSrcweir aKeyAsEntryCB( this, SW_RES(CB_KEYASENTRY )), 997cdf0e10cSrcweir aFromFileCB( this, SW_RES(CB_FROMFILE )), 998cdf0e10cSrcweir aAutoMarkPB( this, SW_RES(MB_AUTOMARK )), 999cdf0e10cSrcweir 1000cdf0e10cSrcweir aFromNames( SW_RES(RES_SRCTYPES )), 1001cdf0e10cSrcweir aFromObjCLB( this, SW_RES(CLB_FROMOBJ )), 1002cdf0e10cSrcweir aFromObjFL( this, SW_RES(FL_FROMOBJ )), 1003cdf0e10cSrcweir 1004cdf0e10cSrcweir aSequenceCB( this, SW_RES(CB_SEQUENCE )), 1005cdf0e10cSrcweir aBracketFT( this, SW_RES(FT_BRACKET )), 1006cdf0e10cSrcweir aBracketLB( this, SW_RES(LB_BRACKET )), 1007cdf0e10cSrcweir aAuthorityFormatFL( this, SW_RES(FL_AUTHORITY )), 1008cdf0e10cSrcweir 1009cdf0e10cSrcweir aSortOptionsFL( this, SW_RES(FL_SORTOPTIONS )), 1010cdf0e10cSrcweir aLanguageFT( this, SW_RES(FT_LANGUAGE )), 1011cdf0e10cSrcweir aLanguageLB( this, SW_RES(LB_LANGUAGE )), 1012cdf0e10cSrcweir aSortAlgorithmFT( this, SW_RES(FT_SORTALG )), 1013cdf0e10cSrcweir aSortAlgorithmLB( this, SW_RES(LB_SORTALG )), 1014cdf0e10cSrcweir 1015cdf0e10cSrcweir pIndexRes(0), 1016cdf0e10cSrcweir 1017cdf0e10cSrcweir sAutoMarkType(SW_RES(ST_AUTOMARK_TYPE)), 1018cdf0e10cSrcweir sAddStyleUser(SW_RES(ST_USER_ADDSTYLE)), 1019cdf0e10cSrcweir bFirstCall(sal_True) 1020cdf0e10cSrcweir { 1021cdf0e10cSrcweir aBracketLB.InsertEntry(String(SW_RES(ST_NO_BRACKET)), 0); 1022cdf0e10cSrcweir 1023cdf0e10cSrcweir aAddStylesPB.SetAccessibleRelationMemberOf(&aCreateFromFL); 1024cdf0e10cSrcweir aAddStylesPB.SetAccessibleRelationLabeledBy(&aAddStylesCB); 1025cdf0e10cSrcweir aAddStylesPB.SetAccessibleName(aAddStylesCB.GetText()); 1026cdf0e10cSrcweir 1027cdf0e10cSrcweir FreeResource(); 1028cdf0e10cSrcweir 1029cdf0e10cSrcweir pIndexEntryWrapper = new IndexEntrySupplierWrapper(); 1030cdf0e10cSrcweir 1031cdf0e10cSrcweir aLanguageLB.SetLanguageList( LANG_LIST_ALL | LANG_LIST_ONLY_KNOWN, 1032cdf0e10cSrcweir sal_False, sal_False, sal_False ); 1033cdf0e10cSrcweir 1034cdf0e10cSrcweir sAddStyleContent = aAddStylesCB.GetText(); 1035cdf0e10cSrcweir 1036cdf0e10cSrcweir aCBLeftPos1 = aFromHeadingsCB.GetPosPixel(); 1037cdf0e10cSrcweir aCBLeftPos2 = aAddStylesCB.GetPosPixel(); 1038cdf0e10cSrcweir aCBLeftPos3 = aTOXMarksCB.GetPosPixel(); 1039cdf0e10cSrcweir 1040cdf0e10cSrcweir ResStringArray& rNames = aFromNames.GetNames(); 1041cdf0e10cSrcweir for(sal_uInt16 i = 0; i < rNames.Count(); i++) 1042cdf0e10cSrcweir { 1043cdf0e10cSrcweir aFromObjCLB.InsertEntry(rNames.GetString(i)); 1044cdf0e10cSrcweir aFromObjCLB.SetEntryData( i, (void*)rNames.GetValue(i) ); 1045cdf0e10cSrcweir } 1046cdf0e10cSrcweir aFromObjCLB.SetHelpId(HID_OLE_CHECKLB); 1047cdf0e10cSrcweir 1048cdf0e10cSrcweir SetExchangeSupport(); 1049cdf0e10cSrcweir aTypeLB.SetSelectHdl(LINK(this, SwTOXSelectTabPage, TOXTypeHdl)); 1050cdf0e10cSrcweir 1051cdf0e10cSrcweir aAddStylesPB.SetClickHdl(LINK(this, SwTOXSelectTabPage, AddStylesHdl)); 1052cdf0e10cSrcweir //aChapterDlgPB.SetClickHdl(LINK(this, SwTOXSelectTabPage, ChapterHdl));//#outline level,removed by zhaojianwei 1053cdf0e10cSrcweir 1054cdf0e10cSrcweir PopupMenu* pMenu = aAutoMarkPB.GetPopupMenu(); 1055cdf0e10cSrcweir pMenu->SetActivateHdl(LINK(this, SwTOXSelectTabPage, MenuEnableHdl)); 1056cdf0e10cSrcweir pMenu->SetSelectHdl(LINK(this, SwTOXSelectTabPage, MenuExecuteHdl)); 1057cdf0e10cSrcweir 1058cdf0e10cSrcweir Link aLk = LINK(this, SwTOXSelectTabPage, CheckBoxHdl); 1059cdf0e10cSrcweir aAddStylesCB .SetClickHdl(aLk); 1060cdf0e10cSrcweir aFromHeadingsCB .SetClickHdl(aLk); 1061cdf0e10cSrcweir aTOXMarksCB .SetClickHdl(aLk); 1062cdf0e10cSrcweir aFromFileCB .SetClickHdl(aLk); 1063cdf0e10cSrcweir aCollectSameCB .SetClickHdl(aLk); 1064cdf0e10cSrcweir aUseFFCB .SetClickHdl(aLk); 1065cdf0e10cSrcweir aUseDashCB .SetClickHdl(aLk); 1066cdf0e10cSrcweir aInitialCapsCB .SetClickHdl(aLk); 1067cdf0e10cSrcweir aKeyAsEntryCB .SetClickHdl(aLk); 1068cdf0e10cSrcweir 1069cdf0e10cSrcweir Link aModifyLk = LINK(this, SwTOXSelectTabPage, ModifyHdl); 1070cdf0e10cSrcweir aTitleED.SetModifyHdl(aModifyLk); 1071cdf0e10cSrcweir aLevelNF.SetModifyHdl(aModifyLk); 1072cdf0e10cSrcweir aSortAlgorithmLB.SetSelectHdl(aModifyLk); 1073cdf0e10cSrcweir 1074cdf0e10cSrcweir aLk = LINK(this, SwTOXSelectTabPage, RadioButtonHdl); 1075cdf0e10cSrcweir aFromCaptionsRB.SetClickHdl(aLk); 1076cdf0e10cSrcweir aFromObjectNamesRB.SetClickHdl(aLk); 1077cdf0e10cSrcweir RadioButtonHdl(&aFromCaptionsRB); 1078cdf0e10cSrcweir 1079cdf0e10cSrcweir aLanguageLB.SetSelectHdl(LINK(this, SwTOXSelectTabPage, LanguageHdl)); 1080cdf0e10cSrcweir aTypeLB.SelectEntryPos(0); 1081cdf0e10cSrcweir aTitleED.SaveValue(); 1082cdf0e10cSrcweir } 1083cdf0e10cSrcweir /*-- 14.06.99 13:11:41--------------------------------------------------- 1084cdf0e10cSrcweir 1085cdf0e10cSrcweir -----------------------------------------------------------------------*/ 1086cdf0e10cSrcweir SwTOXSelectTabPage::~SwTOXSelectTabPage() 1087cdf0e10cSrcweir { 1088cdf0e10cSrcweir delete pIndexRes; 1089cdf0e10cSrcweir delete pIndexEntryWrapper; 1090cdf0e10cSrcweir } 1091cdf0e10cSrcweir /* -----------------21.10.99 17:03------------------- 1092cdf0e10cSrcweir 1093cdf0e10cSrcweir --------------------------------------------------*/ 1094cdf0e10cSrcweir void SwTOXSelectTabPage::SetWrtShell(SwWrtShell& rSh) 1095cdf0e10cSrcweir { 1096cdf0e10cSrcweir sal_uInt16 nUserTypeCount = rSh.GetTOXTypeCount(TOX_USER); 1097cdf0e10cSrcweir if(nUserTypeCount > 1) 1098cdf0e10cSrcweir { 1099cdf0e10cSrcweir //insert all new user indexes names after the standard user index 1100cdf0e10cSrcweir sal_uInt16 nPos = aTypeLB.GetEntryPos((void*)(sal_uInt32)TO_USER); 1101cdf0e10cSrcweir nPos++; 1102cdf0e10cSrcweir for(sal_uInt16 nUser = 1; nUser < nUserTypeCount; nUser++) 1103cdf0e10cSrcweir { 1104cdf0e10cSrcweir nPos = aTypeLB.InsertEntry(rSh.GetTOXType(TOX_USER, nUser)->GetTypeName(), nPos); 1105cdf0e10cSrcweir sal_uInt32 nEntryData = nUser << 8; 1106cdf0e10cSrcweir nEntryData |= TO_USER; 1107cdf0e10cSrcweir aTypeLB.SetEntryData(nPos, (void*)nEntryData); 1108cdf0e10cSrcweir } 1109cdf0e10cSrcweir } 1110cdf0e10cSrcweir } 1111cdf0e10cSrcweir /* -----------------14.06.99 13:10------------------- 1112cdf0e10cSrcweir 1113cdf0e10cSrcweir --------------------------------------------------*/ 1114cdf0e10cSrcweir sal_Bool SwTOXSelectTabPage::FillItemSet( SfxItemSet& ) 1115cdf0e10cSrcweir { 1116cdf0e10cSrcweir return sal_True; 1117cdf0e10cSrcweir } 1118cdf0e10cSrcweir /* -----------------25.08.99 14:31------------------- 1119cdf0e10cSrcweir 1120cdf0e10cSrcweir --------------------------------------------------*/ 1121cdf0e10cSrcweir long lcl_TOXTypesToUserData(CurTOXType eType) 1122cdf0e10cSrcweir { 1123cdf0e10cSrcweir sal_uInt16 nRet = TOX_INDEX; 1124cdf0e10cSrcweir switch(eType.eType) 1125cdf0e10cSrcweir { 1126cdf0e10cSrcweir case TOX_INDEX : nRet = TO_INDEX; break; 1127cdf0e10cSrcweir case TOX_USER : 1128cdf0e10cSrcweir { 1129cdf0e10cSrcweir nRet = eType.nIndex << 8; 1130cdf0e10cSrcweir nRet |= TO_USER; 1131cdf0e10cSrcweir } 1132cdf0e10cSrcweir break; 1133cdf0e10cSrcweir case TOX_CONTENT : nRet = TO_CONTENT; break; 1134cdf0e10cSrcweir case TOX_ILLUSTRATIONS:nRet = TO_ILLUSTRATION; break; 1135cdf0e10cSrcweir case TOX_OBJECTS : nRet = TO_OBJECT; break; 1136cdf0e10cSrcweir case TOX_TABLES : nRet = TO_TABLE; break; 1137cdf0e10cSrcweir case TOX_AUTHORITIES : nRet = TO_AUTHORITIES; break; 1138cdf0e10cSrcweir } 1139cdf0e10cSrcweir return nRet; 1140cdf0e10cSrcweir } 1141cdf0e10cSrcweir //----------------------------------------------------------------- 1142cdf0e10cSrcweir void SwTOXSelectTabPage::SelectType(TOXTypes eSet) 1143cdf0e10cSrcweir { 1144cdf0e10cSrcweir CurTOXType eCurType (eSet, 0); 1145cdf0e10cSrcweir 1146cdf0e10cSrcweir long nData = lcl_TOXTypesToUserData(eCurType); 1147cdf0e10cSrcweir aTypeLB.SelectEntryPos(aTypeLB.GetEntryPos((void*)nData)); 1148cdf0e10cSrcweir aTypeFT.Enable(sal_False); 1149cdf0e10cSrcweir aTypeLB.Enable(sal_False); 1150cdf0e10cSrcweir TOXTypeHdl(&aTypeLB); 1151cdf0e10cSrcweir } 1152cdf0e10cSrcweir 1153cdf0e10cSrcweir /*-- 14.06.99 13:10:45--------------------------------------------------- 1154cdf0e10cSrcweir 1155cdf0e10cSrcweir -----------------------------------------------------------------------*/ 1156cdf0e10cSrcweir //----------------------------------------------------------------- 1157cdf0e10cSrcweir CurTOXType lcl_UserData2TOXTypes(sal_uInt16 nData) 1158cdf0e10cSrcweir { 1159cdf0e10cSrcweir CurTOXType eRet; 1160cdf0e10cSrcweir 1161cdf0e10cSrcweir switch(nData&0xff) 1162cdf0e10cSrcweir { 1163cdf0e10cSrcweir case TO_INDEX : eRet.eType = TOX_INDEX; break; 1164cdf0e10cSrcweir case TO_USER : 1165cdf0e10cSrcweir { 1166cdf0e10cSrcweir eRet.eType = TOX_USER; 1167cdf0e10cSrcweir eRet.nIndex = (nData&0xff00) >> 8; 1168cdf0e10cSrcweir } 1169cdf0e10cSrcweir break; 1170cdf0e10cSrcweir case TO_CONTENT : eRet.eType = TOX_CONTENT; break; 1171cdf0e10cSrcweir case TO_ILLUSTRATION: eRet.eType = TOX_ILLUSTRATIONS; break; 1172cdf0e10cSrcweir case TO_OBJECT : eRet.eType = TOX_OBJECTS; break; 1173cdf0e10cSrcweir case TO_TABLE : eRet.eType = TOX_TABLES; break; 1174cdf0e10cSrcweir case TO_AUTHORITIES : eRet.eType = TOX_AUTHORITIES; break; 1175cdf0e10cSrcweir default: DBG_ERROR("what a type?"); 1176cdf0e10cSrcweir } 1177cdf0e10cSrcweir return eRet; 1178cdf0e10cSrcweir } 1179cdf0e10cSrcweir /* -----------------02.09.99 08:16------------------- 1180cdf0e10cSrcweir 1181cdf0e10cSrcweir --------------------------------------------------*/ 1182cdf0e10cSrcweir void SwTOXSelectTabPage::ApplyTOXDescription() 1183cdf0e10cSrcweir { 1184cdf0e10cSrcweir SwMultiTOXTabDialog* pTOXDlg = (SwMultiTOXTabDialog*)GetTabDialog(); 1185cdf0e10cSrcweir const CurTOXType aCurType = pTOXDlg->GetCurrentTOXType(); 1186cdf0e10cSrcweir SwTOXDescription& rDesc = pTOXDlg->GetTOXDescription(aCurType); 1187cdf0e10cSrcweir aReadOnlyCB.Check(rDesc.IsReadonly()); 1188cdf0e10cSrcweir if(aTitleED.GetText() == aTitleED.GetSavedValue()) 1189cdf0e10cSrcweir { 1190cdf0e10cSrcweir if(rDesc.GetTitle()) 1191cdf0e10cSrcweir aTitleED.SetText(*rDesc.GetTitle()); 1192cdf0e10cSrcweir else 1193cdf0e10cSrcweir aTitleED.SetText(aEmptyStr); 1194cdf0e10cSrcweir aTitleED.SaveValue(); 1195cdf0e10cSrcweir } 1196cdf0e10cSrcweir 1197cdf0e10cSrcweir aAreaLB.SelectEntryPos(rDesc.IsFromChapter() ? 1 : 0); 1198cdf0e10cSrcweir 1199cdf0e10cSrcweir if(aCurType.eType != TOX_INDEX) 1200cdf0e10cSrcweir aLevelNF.SetValue(rDesc.GetLevel()); //content, user 1201cdf0e10cSrcweir 1202cdf0e10cSrcweir sal_uInt16 nCreateType = rDesc.GetContentOptions(); 1203cdf0e10cSrcweir 1204cdf0e10cSrcweir //user + content 1205cdf0e10cSrcweir sal_Bool bHasStyleNames = sal_False; 1206cdf0e10cSrcweir sal_uInt16 i; 1207cdf0e10cSrcweir 1208cdf0e10cSrcweir for( i = 0; i < MAXLEVEL; i++) 1209cdf0e10cSrcweir if(rDesc.GetStyleNames(i).Len()) 1210cdf0e10cSrcweir { 1211cdf0e10cSrcweir bHasStyleNames = sal_True; 1212cdf0e10cSrcweir break; 1213cdf0e10cSrcweir } 1214cdf0e10cSrcweir aAddStylesCB.Check(bHasStyleNames && (nCreateType & nsSwTOXElement::TOX_TEMPLATE)); 1215cdf0e10cSrcweir 1216cdf0e10cSrcweir aFromOLECB. Check( 0 != (nCreateType & nsSwTOXElement::TOX_OLE) ); 1217cdf0e10cSrcweir aFromTablesCB. Check( 0 != (nCreateType & nsSwTOXElement::TOX_TABLE) ); 1218cdf0e10cSrcweir aFromGraphicsCB.Check( 0 != (nCreateType & nsSwTOXElement::TOX_GRAPHIC) ); 1219cdf0e10cSrcweir aFromFramesCB. Check( 0 != (nCreateType & nsSwTOXElement::TOX_FRAME) ); 1220cdf0e10cSrcweir 1221cdf0e10cSrcweir aLevelFromChapterCB.Check(rDesc.IsLevelFromChapter()); 1222cdf0e10cSrcweir 1223cdf0e10cSrcweir //all but illustration and table 1224cdf0e10cSrcweir aTOXMarksCB.Check( 0 != (nCreateType & nsSwTOXElement::TOX_MARK) ); 1225cdf0e10cSrcweir 1226cdf0e10cSrcweir //content 1227cdf0e10cSrcweir if(TOX_CONTENT == aCurType.eType) 1228cdf0e10cSrcweir { 1229cdf0e10cSrcweir aFromHeadingsCB.Check( 0 != (nCreateType & nsSwTOXElement::TOX_OUTLINELEVEL) ); 1230cdf0e10cSrcweir //aChapterDlgPB.Enable(aFromHeadingsCB.IsChecked());//#outline level,removed by zhaojianwei 1231cdf0e10cSrcweir aAddStylesCB.SetText(sAddStyleContent); 1232cdf0e10cSrcweir aAddStylesPB.Enable(aAddStylesCB.IsChecked()); 1233cdf0e10cSrcweir } 1234cdf0e10cSrcweir //index only 1235cdf0e10cSrcweir else if(TOX_INDEX == aCurType.eType) 1236cdf0e10cSrcweir { 1237cdf0e10cSrcweir sal_uInt16 nIndexOptions = rDesc.GetIndexOptions(); 1238cdf0e10cSrcweir aCollectSameCB. Check( 0 != (nIndexOptions & nsSwTOIOptions::TOI_SAME_ENTRY) ); 1239cdf0e10cSrcweir aUseFFCB. Check( 0 != (nIndexOptions & nsSwTOIOptions::TOI_FF) ); 1240cdf0e10cSrcweir aUseDashCB. Check( 0 != (nIndexOptions & nsSwTOIOptions::TOI_DASH) ); 1241cdf0e10cSrcweir if(aUseFFCB.IsChecked()) 1242cdf0e10cSrcweir aUseDashCB.Enable(sal_False); 1243cdf0e10cSrcweir else if(aUseDashCB.IsChecked()) 1244cdf0e10cSrcweir aUseFFCB.Enable(sal_False); 1245cdf0e10cSrcweir 1246cdf0e10cSrcweir aCaseSensitiveCB. Check( 0 != (nIndexOptions & nsSwTOIOptions::TOI_CASE_SENSITIVE) ); 1247cdf0e10cSrcweir aInitialCapsCB. Check( 0 != (nIndexOptions & nsSwTOIOptions::TOI_INITIAL_CAPS) ); 1248cdf0e10cSrcweir aKeyAsEntryCB. Check( 0 != (nIndexOptions & nsSwTOIOptions::TOI_KEY_AS_ENTRY) ); 1249cdf0e10cSrcweir } 1250cdf0e10cSrcweir else if(TOX_ILLUSTRATIONS == aCurType.eType || 1251cdf0e10cSrcweir TOX_TABLES == aCurType.eType) 1252cdf0e10cSrcweir { 1253cdf0e10cSrcweir aFromObjectNamesRB.Check(rDesc.IsCreateFromObjectNames()); 1254cdf0e10cSrcweir aFromCaptionsRB.Check(!rDesc.IsCreateFromObjectNames()); 1255cdf0e10cSrcweir aCaptionSequenceLB.SelectEntry(rDesc.GetSequenceName()); 1256cdf0e10cSrcweir aDisplayTypeLB.SelectEntryPos( static_cast< sal_uInt16 >(rDesc.GetCaptionDisplay()) ); 1257cdf0e10cSrcweir RadioButtonHdl(&aFromCaptionsRB); 1258cdf0e10cSrcweir 1259cdf0e10cSrcweir } 1260cdf0e10cSrcweir else if(TOX_OBJECTS == aCurType.eType) 1261cdf0e10cSrcweir { 1262cdf0e10cSrcweir long nOLEData = rDesc.GetOLEOptions(); 1263cdf0e10cSrcweir for(sal_uInt16 nFromObj = 0; nFromObj < aFromObjCLB.GetEntryCount(); nFromObj++) 1264cdf0e10cSrcweir { 1265cdf0e10cSrcweir long nData = (long)aFromObjCLB.GetEntryData(nFromObj); 1266cdf0e10cSrcweir aFromObjCLB.CheckEntryPos(nFromObj, 0 != (nData & nOLEData)); 1267cdf0e10cSrcweir } 1268cdf0e10cSrcweir } 1269cdf0e10cSrcweir else if(TOX_AUTHORITIES == aCurType.eType) 1270cdf0e10cSrcweir { 1271cdf0e10cSrcweir String sBrackets(rDesc.GetAuthBrackets()); 1272cdf0e10cSrcweir if(!sBrackets.Len() || sBrackets.EqualsAscii(" ")) 1273cdf0e10cSrcweir aBracketLB.SelectEntryPos(0); 1274cdf0e10cSrcweir else 1275cdf0e10cSrcweir aBracketLB.SelectEntry(sBrackets); 1276cdf0e10cSrcweir aSequenceCB.Check(rDesc.IsAuthSequence()); 1277cdf0e10cSrcweir } 1278cdf0e10cSrcweir aAutoMarkPB.Enable(aFromFileCB.IsChecked()); 1279cdf0e10cSrcweir 1280cdf0e10cSrcweir for(i = 0; i < MAXLEVEL; i++) 1281cdf0e10cSrcweir aStyleArr[i] = rDesc.GetStyleNames(i); 1282cdf0e10cSrcweir 1283cdf0e10cSrcweir aLanguageLB.SelectLanguage(rDesc.GetLanguage()); 1284cdf0e10cSrcweir LanguageHdl(0); 1285cdf0e10cSrcweir for( long nCnt = 0; nCnt < aSortAlgorithmLB.GetEntryCount(); ++nCnt ) 1286cdf0e10cSrcweir { 1287cdf0e10cSrcweir const String* pEntryData = (const String*)aSortAlgorithmLB.GetEntryData( (sal_uInt16)nCnt ); 1288cdf0e10cSrcweir DBG_ASSERT(pEntryData, "no entry data available"); 1289cdf0e10cSrcweir if( pEntryData && *pEntryData == rDesc.GetSortAlgorithm()) 1290cdf0e10cSrcweir { 1291cdf0e10cSrcweir aSortAlgorithmLB.SelectEntryPos( (sal_uInt16)nCnt ); 1292cdf0e10cSrcweir break; 1293cdf0e10cSrcweir } 1294cdf0e10cSrcweir } 1295cdf0e10cSrcweir } 1296cdf0e10cSrcweir /* -----------------09.09.99 11:57------------------- 1297cdf0e10cSrcweir 1298cdf0e10cSrcweir --------------------------------------------------*/ 1299cdf0e10cSrcweir void SwTOXSelectTabPage::FillTOXDescription() 1300cdf0e10cSrcweir { 1301cdf0e10cSrcweir SwMultiTOXTabDialog* pTOXDlg = (SwMultiTOXTabDialog*)GetTabDialog(); 1302cdf0e10cSrcweir CurTOXType aCurType = pTOXDlg->GetCurrentTOXType(); 1303cdf0e10cSrcweir SwTOXDescription& rDesc = pTOXDlg->GetTOXDescription(aCurType); 1304cdf0e10cSrcweir rDesc.SetTitle(aTitleED.GetText()); 1305cdf0e10cSrcweir rDesc.SetFromChapter(1 == aAreaLB.GetSelectEntryPos()); 1306cdf0e10cSrcweir sal_uInt16 nContentOptions = 0; 1307cdf0e10cSrcweir if(aTOXMarksCB.IsVisible() && aTOXMarksCB.IsChecked()) 1308cdf0e10cSrcweir nContentOptions |= nsSwTOXElement::TOX_MARK; 1309cdf0e10cSrcweir 1310cdf0e10cSrcweir sal_uInt16 nIndexOptions = rDesc.GetIndexOptions()&nsSwTOIOptions::TOI_ALPHA_DELIMITTER; 1311cdf0e10cSrcweir switch(rDesc.GetTOXType()) 1312cdf0e10cSrcweir { 1313cdf0e10cSrcweir case TOX_CONTENT: 1314cdf0e10cSrcweir if(aFromHeadingsCB.IsChecked()) 1315cdf0e10cSrcweir nContentOptions |= nsSwTOXElement::TOX_OUTLINELEVEL; 1316cdf0e10cSrcweir break; 1317cdf0e10cSrcweir case TOX_USER: 1318cdf0e10cSrcweir { 1319cdf0e10cSrcweir rDesc.SetTOUName(aTypeLB.GetSelectEntry()); 1320cdf0e10cSrcweir 1321cdf0e10cSrcweir if(aFromOLECB.IsChecked()) 1322cdf0e10cSrcweir nContentOptions |= nsSwTOXElement::TOX_OLE; 1323cdf0e10cSrcweir if(aFromTablesCB.IsChecked()) 1324cdf0e10cSrcweir nContentOptions |= nsSwTOXElement::TOX_TABLE; 1325cdf0e10cSrcweir if(aFromFramesCB.IsChecked()) 1326cdf0e10cSrcweir nContentOptions |= nsSwTOXElement::TOX_FRAME; 1327cdf0e10cSrcweir if(aFromGraphicsCB.IsChecked()) 1328cdf0e10cSrcweir nContentOptions |= nsSwTOXElement::TOX_GRAPHIC; 1329cdf0e10cSrcweir } 1330cdf0e10cSrcweir break; 1331cdf0e10cSrcweir case TOX_INDEX: 1332cdf0e10cSrcweir { 1333cdf0e10cSrcweir nContentOptions = nsSwTOXElement::TOX_MARK; 1334cdf0e10cSrcweir 1335cdf0e10cSrcweir if(aCollectSameCB.IsChecked()) 1336cdf0e10cSrcweir nIndexOptions |= nsSwTOIOptions::TOI_SAME_ENTRY; 1337cdf0e10cSrcweir if(aUseFFCB.IsChecked()) 1338cdf0e10cSrcweir nIndexOptions |= nsSwTOIOptions::TOI_FF; 1339cdf0e10cSrcweir if(aUseDashCB.IsChecked()) 1340cdf0e10cSrcweir nIndexOptions |= nsSwTOIOptions::TOI_DASH; 1341cdf0e10cSrcweir if(aCaseSensitiveCB.IsChecked()) 1342cdf0e10cSrcweir nIndexOptions |= nsSwTOIOptions::TOI_CASE_SENSITIVE; 1343cdf0e10cSrcweir if(aInitialCapsCB.IsChecked()) 1344cdf0e10cSrcweir nIndexOptions |= nsSwTOIOptions::TOI_INITIAL_CAPS; 1345cdf0e10cSrcweir if(aKeyAsEntryCB.IsChecked()) 1346cdf0e10cSrcweir nIndexOptions |= nsSwTOIOptions::TOI_KEY_AS_ENTRY; 1347cdf0e10cSrcweir if(aFromFileCB.IsChecked()) 1348cdf0e10cSrcweir rDesc.SetAutoMarkURL(sAutoMarkURL); 1349cdf0e10cSrcweir else 1350cdf0e10cSrcweir rDesc.SetAutoMarkURL(aEmptyStr); 1351cdf0e10cSrcweir } 1352cdf0e10cSrcweir break; 1353cdf0e10cSrcweir case TOX_ILLUSTRATIONS: 1354cdf0e10cSrcweir case TOX_TABLES : 1355cdf0e10cSrcweir rDesc.SetCreateFromObjectNames(aFromObjectNamesRB.IsChecked()); 1356cdf0e10cSrcweir rDesc.SetSequenceName(aCaptionSequenceLB.GetSelectEntry()); 1357cdf0e10cSrcweir rDesc.SetCaptionDisplay((SwCaptionDisplay)aDisplayTypeLB.GetSelectEntryPos()); 1358cdf0e10cSrcweir break; 1359cdf0e10cSrcweir case TOX_OBJECTS: 1360cdf0e10cSrcweir { 1361cdf0e10cSrcweir long nOLEData = 0; 1362cdf0e10cSrcweir for(sal_uInt16 i = 0; i < aFromObjCLB.GetEntryCount(); i++) 1363cdf0e10cSrcweir { 1364cdf0e10cSrcweir if(aFromObjCLB.IsChecked(i)) 1365cdf0e10cSrcweir { 1366cdf0e10cSrcweir long nData = (long)aFromObjCLB.GetEntryData(i); 1367cdf0e10cSrcweir nOLEData |= nData; 1368cdf0e10cSrcweir } 1369cdf0e10cSrcweir } 1370cdf0e10cSrcweir rDesc.SetOLEOptions((sal_uInt16)nOLEData); 1371cdf0e10cSrcweir } 1372cdf0e10cSrcweir break; 1373cdf0e10cSrcweir case TOX_AUTHORITIES: 1374cdf0e10cSrcweir { 1375cdf0e10cSrcweir if(aBracketLB.GetSelectEntryPos()) 1376cdf0e10cSrcweir rDesc.SetAuthBrackets(aBracketLB.GetSelectEntry()); 1377cdf0e10cSrcweir else 1378cdf0e10cSrcweir rDesc.SetAuthBrackets(aEmptyStr); 1379cdf0e10cSrcweir rDesc.SetAuthSequence(aSequenceCB.IsChecked()); 1380cdf0e10cSrcweir } 1381cdf0e10cSrcweir break; 1382cdf0e10cSrcweir } 1383cdf0e10cSrcweir 1384cdf0e10cSrcweir rDesc.SetLevelFromChapter( aLevelFromChapterCB.IsVisible() && 1385cdf0e10cSrcweir aLevelFromChapterCB.IsChecked()); 1386cdf0e10cSrcweir if(aTOXMarksCB.IsChecked() && aTOXMarksCB.IsVisible()) 1387cdf0e10cSrcweir nContentOptions |= nsSwTOXElement::TOX_MARK; 1388cdf0e10cSrcweir if(aFromHeadingsCB.IsChecked() && aFromHeadingsCB.IsVisible()) 1389cdf0e10cSrcweir nContentOptions |= nsSwTOXElement::TOX_OUTLINELEVEL; 1390cdf0e10cSrcweir if(aAddStylesCB.IsChecked() && aAddStylesCB.IsVisible()) 1391cdf0e10cSrcweir nContentOptions |= nsSwTOXElement::TOX_TEMPLATE; 1392cdf0e10cSrcweir 1393cdf0e10cSrcweir rDesc.SetContentOptions(nContentOptions); 1394cdf0e10cSrcweir rDesc.SetIndexOptions(nIndexOptions); 1395cdf0e10cSrcweir rDesc.SetLevel( static_cast< sal_uInt8 >(aLevelNF.GetValue()) ); 1396cdf0e10cSrcweir 1397cdf0e10cSrcweir rDesc.SetReadonly(aReadOnlyCB.IsChecked()); 1398cdf0e10cSrcweir 1399cdf0e10cSrcweir for(sal_uInt16 i = 0; i < MAXLEVEL; i++) 1400cdf0e10cSrcweir rDesc.SetStyleNames(aStyleArr[i], i); 1401cdf0e10cSrcweir 1402cdf0e10cSrcweir rDesc.SetLanguage(aLanguageLB.GetSelectLanguage()); 1403cdf0e10cSrcweir const String* pEntryData = (const String*)aSortAlgorithmLB.GetEntryData( 1404cdf0e10cSrcweir aSortAlgorithmLB.GetSelectEntryPos() ); 1405cdf0e10cSrcweir DBG_ASSERT(pEntryData, "no entry data available"); 1406cdf0e10cSrcweir if(pEntryData) 1407cdf0e10cSrcweir rDesc.SetSortAlgorithm(*pEntryData); 1408cdf0e10cSrcweir } 1409cdf0e10cSrcweir /* -----------------05.07.99 15:09------------------- 1410cdf0e10cSrcweir 1411cdf0e10cSrcweir --------------------------------------------------*/ 1412cdf0e10cSrcweir void SwTOXSelectTabPage::Reset( const SfxItemSet& ) 1413cdf0e10cSrcweir { 1414cdf0e10cSrcweir SwMultiTOXTabDialog* pTOXDlg = (SwMultiTOXTabDialog*)GetTabDialog(); 1415cdf0e10cSrcweir SwWrtShell& rSh = pTOXDlg->GetWrtShell(); 1416cdf0e10cSrcweir const CurTOXType aCurType = pTOXDlg->GetCurrentTOXType(); 1417cdf0e10cSrcweir long nData = lcl_TOXTypesToUserData(aCurType); 1418cdf0e10cSrcweir aTypeLB.SelectEntryPos(aTypeLB.GetEntryPos((void*)nData)); 1419cdf0e10cSrcweir 1420cdf0e10cSrcweir sAutoMarkURL = INetURLObject::decode( rSh.GetTOIAutoMarkURL(), 1421cdf0e10cSrcweir INET_HEX_ESCAPE, 1422cdf0e10cSrcweir INetURLObject::DECODE_UNAMBIGUOUS, 1423cdf0e10cSrcweir RTL_TEXTENCODING_UTF8 ); 1424cdf0e10cSrcweir aFromFileCB.Check( 0 != sAutoMarkURL.Len() ); 1425cdf0e10cSrcweir 1426cdf0e10cSrcweir aCaptionSequenceLB.Clear(); 1427cdf0e10cSrcweir sal_uInt16 i, nCount = rSh.GetFldTypeCount(RES_SETEXPFLD); 1428cdf0e10cSrcweir for (i = 0; i < nCount; i++) 1429cdf0e10cSrcweir { 1430cdf0e10cSrcweir SwFieldType *pType = rSh.GetFldType( i, RES_SETEXPFLD ); 1431cdf0e10cSrcweir if( pType->Which() == RES_SETEXPFLD && 1432cdf0e10cSrcweir ((SwSetExpFieldType *) pType)->GetType() & nsSwGetSetExpType::GSE_SEQ ) 1433cdf0e10cSrcweir aCaptionSequenceLB.InsertEntry(pType->GetName()); 1434cdf0e10cSrcweir } 1435cdf0e10cSrcweir 1436cdf0e10cSrcweir if(pTOXDlg->IsTOXEditMode()) 1437cdf0e10cSrcweir { 1438cdf0e10cSrcweir aTypeFT.Enable(sal_False); 1439cdf0e10cSrcweir aTypeLB.Enable(sal_False); 1440cdf0e10cSrcweir } 1441cdf0e10cSrcweir TOXTypeHdl(&aTypeLB); 1442cdf0e10cSrcweir CheckBoxHdl(&aAddStylesCB); 1443cdf0e10cSrcweir } 1444cdf0e10cSrcweir /*-- 14.06.99 13:10:52--------------------------------------------------- 1445cdf0e10cSrcweir 1446cdf0e10cSrcweir -----------------------------------------------------------------------*/ 1447cdf0e10cSrcweir void SwTOXSelectTabPage::ActivatePage( const SfxItemSet& ) 1448cdf0e10cSrcweir { 1449cdf0e10cSrcweir //nothing to do 1450cdf0e10cSrcweir } 1451cdf0e10cSrcweir /*-- 14.06.99 13:11:00--------------------------------------------------- 1452cdf0e10cSrcweir 1453cdf0e10cSrcweir -----------------------------------------------------------------------*/ 1454cdf0e10cSrcweir int SwTOXSelectTabPage::DeactivatePage( SfxItemSet* _pSet ) 1455cdf0e10cSrcweir { 1456cdf0e10cSrcweir if(_pSet) 1457cdf0e10cSrcweir _pSet->Put(SfxUInt16Item(FN_PARAM_TOX_TYPE, 1458cdf0e10cSrcweir (sal_uInt16)(long)aTypeLB.GetEntryData( aTypeLB.GetSelectEntryPos() ))); 1459cdf0e10cSrcweir FillTOXDescription(); 1460cdf0e10cSrcweir return LEAVE_PAGE; 1461cdf0e10cSrcweir } 1462cdf0e10cSrcweir /* -----------------14.06.99 13:10------------------- 1463cdf0e10cSrcweir 1464cdf0e10cSrcweir --------------------------------------------------*/ 1465cdf0e10cSrcweir SfxTabPage* SwTOXSelectTabPage::Create( Window* pParent, const SfxItemSet& rAttrSet) 1466cdf0e10cSrcweir { 1467cdf0e10cSrcweir return new SwTOXSelectTabPage(pParent, rAttrSet); 1468cdf0e10cSrcweir } 1469cdf0e10cSrcweir /* -----------------14.06.99 13:10------------------- 1470cdf0e10cSrcweir 1471cdf0e10cSrcweir --------------------------------------------------*/ 1472cdf0e10cSrcweir IMPL_LINK(SwTOXSelectTabPage, TOXTypeHdl, ListBox*, pBox) 1473cdf0e10cSrcweir { 1474cdf0e10cSrcweir SwMultiTOXTabDialog* pTOXDlg = (SwMultiTOXTabDialog*)GetTabDialog(); 1475cdf0e10cSrcweir if(!bFirstCall) 1476cdf0e10cSrcweir { 1477cdf0e10cSrcweir // save current values into the proper TOXDescription 1478cdf0e10cSrcweir FillTOXDescription(); 1479cdf0e10cSrcweir } 1480cdf0e10cSrcweir bFirstCall = sal_False; 1481cdf0e10cSrcweir const sal_uInt16 nType = sal::static_int_cast< sal_uInt16 >(reinterpret_cast< sal_uIntPtr >( 1482cdf0e10cSrcweir pBox->GetEntryData( pBox->GetSelectEntryPos() ))); 1483cdf0e10cSrcweir CurTOXType eCurType = lcl_UserData2TOXTypes(nType); 1484cdf0e10cSrcweir pTOXDlg->SetCurrentTOXType(eCurType); 1485cdf0e10cSrcweir 1486cdf0e10cSrcweir aAreaLB.Show( 0 != (nType & (TO_CONTENT|TO_ILLUSTRATION|TO_USER|TO_INDEX|TO_TABLE|TO_OBJECT)) ); 1487cdf0e10cSrcweir aLevelFT.Show( 0 != (nType & (TO_CONTENT)) ); 1488cdf0e10cSrcweir aLevelNF.Show( 0 != (nType & (TO_CONTENT)) ); 1489cdf0e10cSrcweir aLevelFromChapterCB.Show( 0 != (nType & (TO_USER)) ); 1490cdf0e10cSrcweir aAreaFT.Show( 0 != (nType & (TO_CONTENT|TO_ILLUSTRATION|TO_USER|TO_INDEX|TO_TABLE|TO_OBJECT)) ); 1491cdf0e10cSrcweir aAreaFL.Show( 0 != (nType & (TO_CONTENT|TO_ILLUSTRATION|TO_USER|TO_INDEX|TO_TABLE|TO_OBJECT)) ); 1492cdf0e10cSrcweir 1493cdf0e10cSrcweir aFromHeadingsCB.Show( 0 != (nType & (TO_CONTENT)) ); 1494cdf0e10cSrcweir // aChapterDlgPB.Show( 0 != (nType & (TO_CONTENT)) );//#outline level,removed by zhaojianwei 1495cdf0e10cSrcweir aAddStylesCB.Show( 0 != (nType & (TO_CONTENT|TO_USER)) ); 1496cdf0e10cSrcweir aAddStylesPB.Show( 0 != (nType & (TO_CONTENT|TO_USER)) ); 1497cdf0e10cSrcweir 1498cdf0e10cSrcweir aFromTablesCB.Show( 0 != (nType & (TO_USER)) ); 1499cdf0e10cSrcweir aFromFramesCB.Show( 0 != (nType & (TO_USER)) ); 1500cdf0e10cSrcweir aFromGraphicsCB.Show( 0 != (nType & (TO_USER)) ); 1501cdf0e10cSrcweir aFromOLECB.Show( 0 != (nType & (TO_USER)) ); 1502cdf0e10cSrcweir 1503cdf0e10cSrcweir aFromCaptionsRB.Show( 0 != (nType & (TO_ILLUSTRATION|TO_TABLE)) ); 1504cdf0e10cSrcweir aFromObjectNamesRB.Show( 0 != (nType & (TO_ILLUSTRATION|TO_TABLE)) ); 1505cdf0e10cSrcweir 1506cdf0e10cSrcweir aTOXMarksCB.Show( 0 != (nType & (TO_CONTENT|TO_USER)) ); 1507cdf0e10cSrcweir 1508cdf0e10cSrcweir aCreateFromFL.Show( 0 != (nType & (TO_CONTENT|TO_ILLUSTRATION|TO_USER|TO_TABLE)) ); 1509cdf0e10cSrcweir aCaptionSequenceFT.Show( 0 != (nType & (TO_ILLUSTRATION|TO_TABLE)) ); 1510cdf0e10cSrcweir aCaptionSequenceLB.Show( 0 != (nType & (TO_ILLUSTRATION|TO_TABLE)) ); 1511cdf0e10cSrcweir aDisplayTypeFT.Show( 0 != (nType & (TO_ILLUSTRATION|TO_TABLE)) ); 1512cdf0e10cSrcweir aDisplayTypeLB.Show( 0 != (nType & (TO_ILLUSTRATION|TO_TABLE)) ); 1513cdf0e10cSrcweir 1514cdf0e10cSrcweir aSequenceCB.Show( 0 != (nType & TO_AUTHORITIES) ); 1515cdf0e10cSrcweir aBracketFT.Show( 0 != (nType & TO_AUTHORITIES) ); 1516cdf0e10cSrcweir aBracketLB.Show( 0 != (nType & TO_AUTHORITIES) ); 1517cdf0e10cSrcweir aAuthorityFormatFL.Show( 0 != (nType & TO_AUTHORITIES) ); 1518cdf0e10cSrcweir 1519cdf0e10cSrcweir sal_Bool bEnableSortLanguage = 0 != (nType & (TO_INDEX|TO_AUTHORITIES)); 1520cdf0e10cSrcweir aSortOptionsFL.Show(bEnableSortLanguage); 1521cdf0e10cSrcweir aLanguageFT.Show(bEnableSortLanguage); 1522cdf0e10cSrcweir aLanguageLB.Show(bEnableSortLanguage); 1523cdf0e10cSrcweir aSortAlgorithmFT.Show(bEnableSortLanguage); 1524cdf0e10cSrcweir aSortAlgorithmLB.Show(bEnableSortLanguage); 1525cdf0e10cSrcweir 1526cdf0e10cSrcweir //if(nType & TO_CONTENT) //#outline level,removed by zhaojianwei 1527cdf0e10cSrcweir //{ 1528cdf0e10cSrcweir //Point aPos(aAddStylesPB.GetPosPixel()); 1529cdf0e10cSrcweir //aPos.X() = aChapterDlgPB.GetPosPixel().X(); 1530cdf0e10cSrcweir //aAddStylesPB.SetPosPixel(aPos); 1531cdf0e10cSrcweir //} 1532cdf0e10cSrcweir //else if( nType & TO_ILLUSTRATION )//<-removed end. 1533cdf0e10cSrcweir // initialize button positions 1534cdf0e10cSrcweir 1535cdf0e10cSrcweir //#i111993# add styles button has two different positions 1536cdf0e10cSrcweir if( !aAddStylesPosDef.X() ) 1537cdf0e10cSrcweir { 1538cdf0e10cSrcweir aAddStylesPosDef = ( aAddStylesPB.GetPosPixel() ); 1539cdf0e10cSrcweir // move left! 1540cdf0e10cSrcweir Point aPos(aAddStylesPosDef); 1541cdf0e10cSrcweir aPos.X() -= 2 * aAddStylesPB.GetSizePixel().Width(); 1542cdf0e10cSrcweir aAddStylesPosUser = aPos; 1543cdf0e10cSrcweir } 1544cdf0e10cSrcweir 1545cdf0e10cSrcweir if( nType & TO_ILLUSTRATION ) //add by zhaojianwei 1546cdf0e10cSrcweir aCaptionSequenceLB.SelectEntry( SwStyleNameMapper::GetUIName( 1547cdf0e10cSrcweir RES_POOLCOLL_LABEL_ABB, aEmptyStr )); 1548cdf0e10cSrcweir else if( nType & TO_TABLE ) 1549cdf0e10cSrcweir aCaptionSequenceLB.SelectEntry( SwStyleNameMapper::GetUIName( 1550cdf0e10cSrcweir RES_POOLCOLL_LABEL_TABLE, aEmptyStr )); 1551cdf0e10cSrcweir else if( nType & TO_USER ) 1552cdf0e10cSrcweir { 1553cdf0e10cSrcweir aAddStylesCB.SetText(sAddStyleUser); 1554cdf0e10cSrcweir aAddStylesPB.SetPosPixel(aAddStylesPosUser); 1555cdf0e10cSrcweir } 1556cdf0e10cSrcweir else if( nType & TO_CONTENT ) 1557cdf0e10cSrcweir { 1558cdf0e10cSrcweir aAddStylesPB.SetPosPixel(aAddStylesPosDef); 1559cdf0e10cSrcweir } 1560cdf0e10cSrcweir 1561cdf0e10cSrcweir aCollectSameCB.Show( 0 != (nType & TO_INDEX) ); 1562cdf0e10cSrcweir aUseFFCB.Show( 0 != (nType & TO_INDEX) ); 1563cdf0e10cSrcweir aUseDashCB.Show( 0 != (nType & TO_INDEX) ); 1564cdf0e10cSrcweir aCaseSensitiveCB.Show( 0 != (nType & TO_INDEX) ); 1565cdf0e10cSrcweir aInitialCapsCB.Show( 0 != (nType & TO_INDEX) ); 1566cdf0e10cSrcweir aKeyAsEntryCB.Show( 0 != (nType & TO_INDEX) ); 1567cdf0e10cSrcweir aFromFileCB.Show( 0 != (nType & TO_INDEX) ); 1568cdf0e10cSrcweir aAutoMarkPB.Show( 0 != (nType & TO_INDEX) ); 1569cdf0e10cSrcweir // aCreateAutoMarkPB.Show(nType &TO_INDEX); 1570cdf0e10cSrcweir // aEditAutoMarkPB.Show(nType & TO_INDEX); 1571cdf0e10cSrcweir 1572cdf0e10cSrcweir aIdxOptionsFL.Show( 0 != (nType & TO_INDEX) ); 1573cdf0e10cSrcweir 1574cdf0e10cSrcweir //object index 1575cdf0e10cSrcweir aFromObjCLB.Show( 0 != (nType & TO_OBJECT) ); 1576cdf0e10cSrcweir aFromObjFL.Show( 0 != (nType & TO_OBJECT) ); 1577cdf0e10cSrcweir 1578cdf0e10cSrcweir //move controls 1579cdf0e10cSrcweir aAddStylesCB.SetPosPixel(nType & TO_USER ? aCBLeftPos1 : aCBLeftPos2); 1580cdf0e10cSrcweir Point aPBPos(aAddStylesPB.GetPosPixel()); 1581cdf0e10cSrcweir aPBPos.Y() = nType & TO_USER ? aCBLeftPos1.Y() : aCBLeftPos2.Y(); 1582cdf0e10cSrcweir aAddStylesPB.SetPosPixel(aPBPos); 1583cdf0e10cSrcweir aTOXMarksCB.SetPosPixel(nType & TO_USER ? aCBLeftPos2 : aCBLeftPos3); 1584cdf0e10cSrcweir //set control values from the proper TOXDescription 1585cdf0e10cSrcweir { 1586cdf0e10cSrcweir ApplyTOXDescription(); 1587cdf0e10cSrcweir } 1588cdf0e10cSrcweir ModifyHdl(0); 1589cdf0e10cSrcweir return 0; 1590cdf0e10cSrcweir } 1591cdf0e10cSrcweir /* -----------------30.11.99 12:48------------------- 1592cdf0e10cSrcweir 1593cdf0e10cSrcweir --------------------------------------------------*/ 1594cdf0e10cSrcweir IMPL_LINK(SwTOXSelectTabPage, ModifyHdl, void*, EMPTYARG) 1595cdf0e10cSrcweir { 1596cdf0e10cSrcweir SwMultiTOXTabDialog* pTOXDlg = (SwMultiTOXTabDialog*)GetTabDialog(); 1597cdf0e10cSrcweir if(pTOXDlg) 1598cdf0e10cSrcweir { 1599cdf0e10cSrcweir FillTOXDescription(); 1600cdf0e10cSrcweir pTOXDlg->CreateOrUpdateExample(pTOXDlg->GetCurrentTOXType().eType, TOX_PAGE_SELECT); 1601cdf0e10cSrcweir } 1602cdf0e10cSrcweir return 0; 1603cdf0e10cSrcweir } 1604cdf0e10cSrcweir /* -----------------05.07.99 10:13------------------- 1605cdf0e10cSrcweir 1606cdf0e10cSrcweir --------------------------------------------------*/ 1607cdf0e10cSrcweir IMPL_LINK(SwTOXSelectTabPage, CheckBoxHdl, CheckBox*, pBox ) 1608cdf0e10cSrcweir { 1609cdf0e10cSrcweir SwMultiTOXTabDialog* pTOXDlg = (SwMultiTOXTabDialog*)GetTabDialog(); 1610cdf0e10cSrcweir const CurTOXType aCurType = pTOXDlg->GetCurrentTOXType(); 1611cdf0e10cSrcweir if(TOX_CONTENT == aCurType.eType) 1612cdf0e10cSrcweir { 1613cdf0e10cSrcweir //at least one of the three CheckBoxes must be checked 1614cdf0e10cSrcweir if(!aAddStylesCB.IsChecked() && !aFromHeadingsCB.IsChecked() && !aTOXMarksCB.IsChecked()) 1615cdf0e10cSrcweir { 1616cdf0e10cSrcweir //TODO: InfoBox? 1617cdf0e10cSrcweir pBox->Check(sal_True); 1618cdf0e10cSrcweir } 1619cdf0e10cSrcweir aAddStylesPB.Enable(aAddStylesCB.IsChecked()); 1620cdf0e10cSrcweir //aChapterDlgPB.Enable(aFromHeadingsCB.IsChecked());//#outline level,removed by zhaojianwei 1621cdf0e10cSrcweir } 1622cdf0e10cSrcweir if(TOX_USER == aCurType.eType) 1623cdf0e10cSrcweir { 1624cdf0e10cSrcweir aAddStylesPB.Enable(aAddStylesCB.IsChecked()); 1625cdf0e10cSrcweir } 1626cdf0e10cSrcweir else if(TOX_INDEX == aCurType.eType) 1627cdf0e10cSrcweir { 1628cdf0e10cSrcweir aAutoMarkPB.Enable(aFromFileCB.IsChecked()); 1629cdf0e10cSrcweir aUseFFCB.Enable(aCollectSameCB.IsChecked() && !aUseDashCB.IsChecked()); 1630cdf0e10cSrcweir aUseDashCB.Enable(aCollectSameCB.IsChecked() && !aUseFFCB.IsChecked()); 1631cdf0e10cSrcweir aCaseSensitiveCB.Enable(aCollectSameCB.IsChecked()); 1632cdf0e10cSrcweir } 1633cdf0e10cSrcweir ModifyHdl(0); 1634cdf0e10cSrcweir return 0; 1635cdf0e10cSrcweir }; 1636cdf0e10cSrcweir /* -----------------14.07.99 14:21------------------- 1637cdf0e10cSrcweir 1638cdf0e10cSrcweir --------------------------------------------------*/ 1639cdf0e10cSrcweir IMPL_LINK(SwTOXSelectTabPage, RadioButtonHdl, RadioButton*, EMPTYARG ) 1640cdf0e10cSrcweir { 1641cdf0e10cSrcweir sal_Bool bEnable = aFromCaptionsRB.IsChecked(); 1642cdf0e10cSrcweir aCaptionSequenceFT.Enable(bEnable); 1643cdf0e10cSrcweir aCaptionSequenceLB.Enable(bEnable); 1644cdf0e10cSrcweir aDisplayTypeFT.Enable(bEnable); 1645cdf0e10cSrcweir aDisplayTypeLB.Enable(bEnable); 1646cdf0e10cSrcweir ModifyHdl(0); 1647cdf0e10cSrcweir return 0; 1648cdf0e10cSrcweir } 1649cdf0e10cSrcweir /* -----------------------------06.06.01 09:33-------------------------------- 1650cdf0e10cSrcweir 1651cdf0e10cSrcweir ---------------------------------------------------------------------------*/ 1652cdf0e10cSrcweir IMPL_LINK(SwTOXSelectTabPage, LanguageHdl, ListBox*, pBox) 1653cdf0e10cSrcweir { 1654cdf0e10cSrcweir Locale aLcl( SvxCreateLocale( aLanguageLB.GetSelectLanguage() ) ); 1655cdf0e10cSrcweir Sequence< OUString > aSeq = pIndexEntryWrapper->GetAlgorithmList( aLcl ); 1656cdf0e10cSrcweir 1657cdf0e10cSrcweir if( !pIndexRes ) 1658cdf0e10cSrcweir pIndexRes = new IndexEntryRessource(); 1659cdf0e10cSrcweir 1660cdf0e10cSrcweir String sOldString; 1661cdf0e10cSrcweir void* pUserData; 1662cdf0e10cSrcweir if( 0 != (pUserData = aSortAlgorithmLB.GetEntryData( aSortAlgorithmLB.GetSelectEntryPos())) ) 1663cdf0e10cSrcweir sOldString = *(String*)pUserData; 1664cdf0e10cSrcweir void* pDel; 1665cdf0e10cSrcweir sal_uInt16 nEnd = aSortAlgorithmLB.GetEntryCount(); 1666cdf0e10cSrcweir for( sal_uInt16 n = 0; n < nEnd; ++n ) 1667cdf0e10cSrcweir if( 0 != ( pDel = aSortAlgorithmLB.GetEntryData( n )) ) 1668cdf0e10cSrcweir delete (String*)pDel; 1669cdf0e10cSrcweir aSortAlgorithmLB.Clear(); 1670cdf0e10cSrcweir 1671cdf0e10cSrcweir sal_uInt16 nInsPos; 1672cdf0e10cSrcweir String sAlg, sUINm; 1673cdf0e10cSrcweir nEnd = static_cast< sal_uInt16 >(aSeq.getLength()); 1674cdf0e10cSrcweir for( sal_uInt16 nCnt = 0; nCnt < nEnd; ++nCnt ) 1675cdf0e10cSrcweir { 1676cdf0e10cSrcweir sUINm = pIndexRes->GetTranslation( sAlg = aSeq[ nCnt ] ); 1677cdf0e10cSrcweir nInsPos = aSortAlgorithmLB.InsertEntry( sUINm ); 1678cdf0e10cSrcweir aSortAlgorithmLB.SetEntryData( nInsPos, new String( sAlg )); 1679cdf0e10cSrcweir if( sAlg == sOldString ) 1680cdf0e10cSrcweir aSortAlgorithmLB.SelectEntryPos( nInsPos ); 1681cdf0e10cSrcweir } 1682cdf0e10cSrcweir 1683cdf0e10cSrcweir if( LISTBOX_ENTRY_NOTFOUND == aSortAlgorithmLB.GetSelectEntryPos() ) 1684cdf0e10cSrcweir aSortAlgorithmLB.SelectEntryPos( 0 ); 1685cdf0e10cSrcweir 1686cdf0e10cSrcweir if(pBox) 1687cdf0e10cSrcweir ModifyHdl(0); 1688cdf0e10cSrcweir return 0; 1689cdf0e10cSrcweir }; 1690cdf0e10cSrcweir /* -----------------14.06.99 13:10------------------- 1691cdf0e10cSrcweir 1692cdf0e10cSrcweir --------------------------------------------------*/ 1693cdf0e10cSrcweir IMPL_LINK(SwTOXSelectTabPage, TOXAreaHdl, ListBox*, pBox) 1694cdf0e10cSrcweir { 1695cdf0e10cSrcweir DBG_WARNING("not implemented"); 1696cdf0e10cSrcweir switch((long)pBox->GetEntryData( pBox->GetSelectEntryPos() )) 1697cdf0e10cSrcweir { 1698cdf0e10cSrcweir case AREA_DOCUMENT : break; 1699cdf0e10cSrcweir case AREA_CHAPTER : break; 1700cdf0e10cSrcweir } 1701cdf0e10cSrcweir return 0; 1702cdf0e10cSrcweir } 1703cdf0e10cSrcweir 1704cdf0e10cSrcweir //#outline level, removed by zhaojianwei 1705cdf0e10cSrcweir //It is no longer used! 1706cdf0e10cSrcweir ///* -----------------14.06.99 13:10------------------- 1707cdf0e10cSrcweir // 1708cdf0e10cSrcweir // --------------------------------------------------*/ 1709cdf0e10cSrcweir //IMPL_LINK(SwTOXSelectTabPage, ChapterHdl, PushButton*, pButton) 1710cdf0e10cSrcweir //{ 1711cdf0e10cSrcweir // SwMultiTOXTabDialog* pTOXDlg = (SwMultiTOXTabDialog*)GetTabDialog(); 1712cdf0e10cSrcweir // SwWrtShell& rSh = pTOXDlg->GetWrtShell(); 1713cdf0e10cSrcweir // 1714cdf0e10cSrcweir // SfxItemSet aTmp(rSh.GetView().GetPool(), FN_PARAM_1, FN_PARAM_1); 1715cdf0e10cSrcweir // SwOutlineTabDialog* pDlg = new SwOutlineTabDialog(pButton, &aTmp, rSh); 1716cdf0e10cSrcweir // 1717cdf0e10cSrcweir // if(RET_OK == pDlg->Execute()) 1718cdf0e10cSrcweir // { 1719cdf0e10cSrcweir // CurTOXType aCurType = pTOXDlg->GetCurrentTOXType(); 1720cdf0e10cSrcweir // SwForm* pForm = ((SwMultiTOXTabDialog*)GetTabDialog())->GetForm(aCurType); 1721cdf0e10cSrcweir // // jetzt muss ueberprueft werden, ob dem sdbcx::Index Ueberschriftenvorlagen 1722cdf0e10cSrcweir // // zugewiesen wurden 1723cdf0e10cSrcweir // String sStr; 1724cdf0e10cSrcweir // for(sal_uInt16 i = 0; i < MAXLEVEL; i++) 1725cdf0e10cSrcweir // { 1726cdf0e10cSrcweir // sal_Bool bNum = !SwMultiTOXTabDialog::IsNoNum(rSh, pForm->GetTemplate( i + 1 )); 1727cdf0e10cSrcweir // if(bNum) 1728cdf0e10cSrcweir // { 1729cdf0e10cSrcweir // //es gibt getrennte Resourcebereiche fuer die Inhaltsverzeichnisse 1730cdf0e10cSrcweir // if(i < 5) 1731cdf0e10cSrcweir // SwStyleNameMapper::FillUIName( static_cast< sal_uInt16 >(RES_POOLCOLL_TOX_CNTNT1 + i), sStr ); 1732cdf0e10cSrcweir // else 1733cdf0e10cSrcweir // SwStyleNameMapper::FillUIName( static_cast< sal_uInt16 >(RES_POOLCOLL_TOX_CNTNT6 + i - 5), sStr ); 1734cdf0e10cSrcweir // pForm->SetTemplate( i + 1, sStr ); 1735cdf0e10cSrcweir // } 1736cdf0e10cSrcweir // } 1737cdf0e10cSrcweir // 1738cdf0e10cSrcweir // } 1739cdf0e10cSrcweir // delete pDlg; 1740cdf0e10cSrcweir // return 0; 1741cdf0e10cSrcweir //} 1742cdf0e10cSrcweir /* -----------------14.06.99 13:10------------------- 1743cdf0e10cSrcweir 1744cdf0e10cSrcweir --------------------------------------------------*/ 1745cdf0e10cSrcweir IMPL_LINK(SwTOXSelectTabPage, AddStylesHdl, PushButton*, pButton) 1746cdf0e10cSrcweir { 1747cdf0e10cSrcweir SwAddStylesDlg_Impl* pDlg = new SwAddStylesDlg_Impl(pButton, 1748cdf0e10cSrcweir ((SwMultiTOXTabDialog*)GetTabDialog())->GetWrtShell(), 1749cdf0e10cSrcweir aStyleArr); 1750cdf0e10cSrcweir pDlg->Execute(); 1751cdf0e10cSrcweir delete pDlg; 1752cdf0e10cSrcweir ModifyHdl(0); 1753cdf0e10cSrcweir return 0; 1754cdf0e10cSrcweir } 1755cdf0e10cSrcweir /* -----------------------------19.01.00 10:59-------------------------------- 1756cdf0e10cSrcweir 1757cdf0e10cSrcweir ---------------------------------------------------------------------------*/ 1758cdf0e10cSrcweir 1759cdf0e10cSrcweir IMPL_LINK(SwTOXSelectTabPage, MenuEnableHdl, Menu*, pMenu) 1760cdf0e10cSrcweir { 1761cdf0e10cSrcweir pMenu->EnableItem(MN_AUTOMARK_EDIT, sAutoMarkURL.Len() > 0); 1762cdf0e10cSrcweir return 0; 1763cdf0e10cSrcweir } 1764cdf0e10cSrcweir 1765cdf0e10cSrcweir IMPL_LINK(SwTOXSelectTabPage, MenuExecuteHdl, Menu*, pMenu) 1766cdf0e10cSrcweir { 1767cdf0e10cSrcweir const String sSaveAutoMarkURL = sAutoMarkURL; 1768cdf0e10cSrcweir switch(pMenu->GetCurItemId()) 1769cdf0e10cSrcweir { 1770cdf0e10cSrcweir case MN_AUTOMARK_OPEN: 1771cdf0e10cSrcweir sAutoMarkURL = lcl_CreateAutoMarkFileDlg( 1772cdf0e10cSrcweir sAutoMarkURL, sAutoMarkType, sal_True); 1773cdf0e10cSrcweir break; 1774cdf0e10cSrcweir case MN_AUTOMARK_NEW : 1775cdf0e10cSrcweir sAutoMarkURL = lcl_CreateAutoMarkFileDlg( 1776cdf0e10cSrcweir sAutoMarkURL, sAutoMarkType, sal_False); 1777cdf0e10cSrcweir if( !sAutoMarkURL.Len() ) 1778cdf0e10cSrcweir break; 1779cdf0e10cSrcweir //no break 1780cdf0e10cSrcweir case MN_AUTOMARK_EDIT: 1781cdf0e10cSrcweir { 1782cdf0e10cSrcweir sal_Bool bNew = pMenu->GetCurItemId()== MN_AUTOMARK_NEW; 1783cdf0e10cSrcweir SwAutoMarkDlg_Impl* pAutoMarkDlg = new SwAutoMarkDlg_Impl( 1784cdf0e10cSrcweir &aAutoMarkPB, sAutoMarkURL, sAutoMarkType, bNew ); 1785cdf0e10cSrcweir 1786cdf0e10cSrcweir if( RET_OK != pAutoMarkDlg->Execute() && bNew ) 1787cdf0e10cSrcweir sAutoMarkURL = sSaveAutoMarkURL; 1788cdf0e10cSrcweir delete pAutoMarkDlg; 1789cdf0e10cSrcweir 1790cdf0e10cSrcweir } 1791cdf0e10cSrcweir break; 1792cdf0e10cSrcweir } 1793cdf0e10cSrcweir return 0; 1794cdf0e10cSrcweir } 1795cdf0e10cSrcweir 1796cdf0e10cSrcweir /* -----------------16.06.99 10:46------------------- 1797cdf0e10cSrcweir 1798cdf0e10cSrcweir --------------------------------------------------*/ 1799cdf0e10cSrcweir class SwTOXEdit : public Edit 1800cdf0e10cSrcweir { 1801cdf0e10cSrcweir SwFormToken aFormToken; 1802cdf0e10cSrcweir Link aPrevNextControlLink; 1803cdf0e10cSrcweir sal_Bool bNextControl; 1804cdf0e10cSrcweir SwTokenWindow* m_pParent; 1805cdf0e10cSrcweir public: 1806cdf0e10cSrcweir SwTOXEdit( Window* pParent, SwTokenWindow* pTokenWin, 1807cdf0e10cSrcweir const SwFormToken& aToken) 1808cdf0e10cSrcweir : Edit( pParent, WB_BORDER|WB_TABSTOP|WB_CENTER), 1809cdf0e10cSrcweir aFormToken(aToken), 1810cdf0e10cSrcweir bNextControl(sal_False), 1811cdf0e10cSrcweir m_pParent( pTokenWin ) 1812cdf0e10cSrcweir { 1813cdf0e10cSrcweir SetHelpId( HID_TOX_ENTRY_EDIT ); 1814cdf0e10cSrcweir } 1815cdf0e10cSrcweir 1816cdf0e10cSrcweir virtual void KeyInput( const KeyEvent& rKEvt ); 1817cdf0e10cSrcweir virtual void RequestHelp( const HelpEvent& rHEvt ); 1818cdf0e10cSrcweir 1819cdf0e10cSrcweir sal_Bool IsNextControl() const {return bNextControl;} 1820cdf0e10cSrcweir void SetPrevNextLink( const Link& rLink ) {aPrevNextControlLink = rLink;} 1821cdf0e10cSrcweir 1822cdf0e10cSrcweir const SwFormToken& GetFormToken() 1823cdf0e10cSrcweir { 1824cdf0e10cSrcweir aFormToken.sText = GetText(); 1825cdf0e10cSrcweir return aFormToken; 1826cdf0e10cSrcweir } 1827cdf0e10cSrcweir 1828cdf0e10cSrcweir void SetCharStyleName(const String& rSet, sal_uInt16 nPoolId) 1829cdf0e10cSrcweir { 1830cdf0e10cSrcweir aFormToken.sCharStyleName = rSet; 1831cdf0e10cSrcweir aFormToken.nPoolId = nPoolId; 1832cdf0e10cSrcweir } 1833cdf0e10cSrcweir 1834cdf0e10cSrcweir void AdjustSize(); 1835cdf0e10cSrcweir }; 1836cdf0e10cSrcweir 1837cdf0e10cSrcweir //--------------------------------------------------- 1838cdf0e10cSrcweir void SwTOXEdit::RequestHelp( const HelpEvent& rHEvt ) 1839cdf0e10cSrcweir { 1840cdf0e10cSrcweir if(!m_pParent->CreateQuickHelp(this, aFormToken, rHEvt)) 1841cdf0e10cSrcweir Edit::RequestHelp(rHEvt); 1842cdf0e10cSrcweir } 1843cdf0e10cSrcweir //--------------------------------------------------- 1844cdf0e10cSrcweir void SwTOXEdit::KeyInput( const KeyEvent& rKEvt ) 1845cdf0e10cSrcweir { 1846cdf0e10cSrcweir const Selection& rSel = GetSelection(); 1847cdf0e10cSrcweir sal_uInt16 nTextLen = GetText().Len(); 1848cdf0e10cSrcweir if( (rSel.A() == rSel.B() && 1849cdf0e10cSrcweir !rSel.A() ) || rSel.A() == nTextLen ) 1850cdf0e10cSrcweir { 1851cdf0e10cSrcweir sal_Bool bCall = sal_False; 1852cdf0e10cSrcweir KeyCode aCode = rKEvt.GetKeyCode(); 1853cdf0e10cSrcweir if(aCode.GetCode() == KEY_RIGHT && rSel.A() == nTextLen) 1854cdf0e10cSrcweir { 1855cdf0e10cSrcweir bNextControl = sal_True; 1856cdf0e10cSrcweir bCall = sal_True; 1857cdf0e10cSrcweir } 1858cdf0e10cSrcweir else if(aCode.GetCode() == KEY_LEFT && !rSel.A() ) 1859cdf0e10cSrcweir { 1860cdf0e10cSrcweir bNextControl = sal_False; 1861cdf0e10cSrcweir bCall = sal_True; 1862cdf0e10cSrcweir } 1863*ca62e2c2SSteve Yin //IAccessibility2 Impplementaton 2009----- 1864*ca62e2c2SSteve Yin else if ( (aCode.GetCode() == KEY_F3) && aCode.IsShift() && !aCode.IsMod1() && !aCode.IsMod2() ) 1865*ca62e2c2SSteve Yin { 1866*ca62e2c2SSteve Yin if ( m_pParent ) 1867*ca62e2c2SSteve Yin { 1868*ca62e2c2SSteve Yin m_pParent->SetFocus2theAllBtn(); 1869*ca62e2c2SSteve Yin } 1870*ca62e2c2SSteve Yin } 1871*ca62e2c2SSteve Yin //-----IAccessibility2 Impplementaton 2009 1872cdf0e10cSrcweir if(bCall && aPrevNextControlLink.IsSet()) 1873cdf0e10cSrcweir aPrevNextControlLink.Call(this); 1874cdf0e10cSrcweir 1875cdf0e10cSrcweir } 1876cdf0e10cSrcweir Edit::KeyInput(rKEvt); 1877cdf0e10cSrcweir } 1878cdf0e10cSrcweir /* -----------------16.07.99 12:41------------------- 1879cdf0e10cSrcweir 1880cdf0e10cSrcweir --------------------------------------------------*/ 1881cdf0e10cSrcweir void SwTOXEdit::AdjustSize() 1882cdf0e10cSrcweir { 1883cdf0e10cSrcweir Size aSize(GetSizePixel()); 1884cdf0e10cSrcweir Size aTextSize(GetTextWidth(GetText()), GetTextHeight()); 1885cdf0e10cSrcweir aTextSize = LogicToPixel(aTextSize); 1886cdf0e10cSrcweir aSize.Width() = aTextSize.Width() + EDIT_MINWIDTH; 1887cdf0e10cSrcweir SetSizePixel(aSize); 1888cdf0e10cSrcweir } 1889cdf0e10cSrcweir 1890cdf0e10cSrcweir //--------------------------------------------------- 1891cdf0e10cSrcweir //--------------------------------------------------- 1892cdf0e10cSrcweir class SwTOXButton : public PushButton 1893cdf0e10cSrcweir { 1894cdf0e10cSrcweir SwFormToken aFormToken; 1895cdf0e10cSrcweir Link aPrevNextControlLink; 1896cdf0e10cSrcweir sal_Bool bNextControl; 1897cdf0e10cSrcweir SwTokenWindow* m_pParent; 1898cdf0e10cSrcweir public: 1899cdf0e10cSrcweir SwTOXButton( Window* pParent, SwTokenWindow* pTokenWin, 1900cdf0e10cSrcweir const SwFormToken& rToken) 1901cdf0e10cSrcweir : PushButton(pParent, WB_BORDER|WB_TABSTOP), 1902cdf0e10cSrcweir aFormToken(rToken), 1903cdf0e10cSrcweir bNextControl(sal_False), 1904cdf0e10cSrcweir m_pParent(pTokenWin) 1905cdf0e10cSrcweir { 1906cdf0e10cSrcweir SetHelpId(HID_TOX_ENTRY_BUTTON); 1907cdf0e10cSrcweir } 1908cdf0e10cSrcweir 1909cdf0e10cSrcweir virtual void KeyInput( const KeyEvent& rKEvt ); 1910cdf0e10cSrcweir virtual void RequestHelp( const HelpEvent& rHEvt ); 1911cdf0e10cSrcweir 1912cdf0e10cSrcweir sal_Bool IsNextControl() const {return bNextControl;} 1913cdf0e10cSrcweir void SetPrevNextLink(const Link& rLink) {aPrevNextControlLink = rLink;} 1914cdf0e10cSrcweir const SwFormToken& GetFormToken() const {return aFormToken;} 1915cdf0e10cSrcweir 1916cdf0e10cSrcweir void SetCharStyleName(const String& rSet, sal_uInt16 nPoolId) 1917cdf0e10cSrcweir { 1918cdf0e10cSrcweir aFormToken.sCharStyleName = rSet; 1919cdf0e10cSrcweir aFormToken.nPoolId = nPoolId; 1920cdf0e10cSrcweir } 1921cdf0e10cSrcweir 1922cdf0e10cSrcweir void SetTabPosition(SwTwips nSet) 1923cdf0e10cSrcweir { aFormToken.nTabStopPosition = nSet; } 1924cdf0e10cSrcweir 1925cdf0e10cSrcweir void SetFillChar( sal_Unicode cSet ) 1926cdf0e10cSrcweir { aFormToken.cTabFillChar = cSet; } 1927cdf0e10cSrcweir 1928cdf0e10cSrcweir void SetTabAlign(SvxTabAdjust eAlign) 1929cdf0e10cSrcweir { aFormToken.eTabAlign = eAlign;} 1930cdf0e10cSrcweir 1931cdf0e10cSrcweir //---> i89791 1932cdf0e10cSrcweir //used for entry number format, in TOC only 1933cdf0e10cSrcweir //needed for different UI dialog position 1934cdf0e10cSrcweir void SetEntryNumberFormat(sal_uInt16 nSet) { 1935cdf0e10cSrcweir switch(nSet) 1936cdf0e10cSrcweir { 1937cdf0e10cSrcweir default: 1938cdf0e10cSrcweir case 0: 1939cdf0e10cSrcweir aFormToken.nChapterFormat = CF_NUMBER; 1940cdf0e10cSrcweir break; 1941cdf0e10cSrcweir case 1: 1942cdf0e10cSrcweir aFormToken.nChapterFormat = CF_NUM_NOPREPST_TITLE; 1943cdf0e10cSrcweir break; 1944cdf0e10cSrcweir } 1945cdf0e10cSrcweir } 1946cdf0e10cSrcweir 1947cdf0e10cSrcweir void SetChapterInfo(sal_uInt16 nSet) { 1948cdf0e10cSrcweir switch(nSet) 1949cdf0e10cSrcweir { 1950cdf0e10cSrcweir default: 1951cdf0e10cSrcweir case 0: 1952cdf0e10cSrcweir aFormToken.nChapterFormat = CF_NUM_NOPREPST_TITLE; 1953cdf0e10cSrcweir break; 1954cdf0e10cSrcweir case 1: 1955cdf0e10cSrcweir aFormToken.nChapterFormat = CF_TITLE; 1956cdf0e10cSrcweir break; 1957cdf0e10cSrcweir case 2: 1958cdf0e10cSrcweir aFormToken.nChapterFormat = CF_NUMBER_NOPREPST; 1959cdf0e10cSrcweir break; 1960cdf0e10cSrcweir } 1961cdf0e10cSrcweir } 1962cdf0e10cSrcweir //<--- 1963cdf0e10cSrcweir sal_uInt16 GetChapterInfo() const{ return aFormToken.nChapterFormat;} 1964cdf0e10cSrcweir 1965cdf0e10cSrcweir void SetOutlineLevel( sal_uInt16 nSet ) { aFormToken.nOutlineLevel = nSet;}//i53420 1966cdf0e10cSrcweir sal_uInt16 GetOutlineLevel() const{ return aFormToken.nOutlineLevel;} 1967cdf0e10cSrcweir 1968cdf0e10cSrcweir void SetLinkEnd() 1969cdf0e10cSrcweir { 1970cdf0e10cSrcweir DBG_ASSERT(TOKEN_LINK_START == aFormToken.eTokenType, 1971cdf0e10cSrcweir "call SetLinkEnd for link start only!"); 1972cdf0e10cSrcweir aFormToken.eTokenType = TOKEN_LINK_END; 1973cdf0e10cSrcweir aFormToken.sText.AssignAscii(SwForm::aFormLinkEnd); 1974cdf0e10cSrcweir SetText(aFormToken.sText); 1975cdf0e10cSrcweir } 1976cdf0e10cSrcweir void SetLinkStart() 1977cdf0e10cSrcweir { 1978cdf0e10cSrcweir DBG_ASSERT(TOKEN_LINK_END == aFormToken.eTokenType, 1979cdf0e10cSrcweir "call SetLinkStart for link start only!"); 1980cdf0e10cSrcweir aFormToken.eTokenType = TOKEN_LINK_START; 1981cdf0e10cSrcweir aFormToken.sText.AssignAscii(SwForm::aFormLinkStt); 1982cdf0e10cSrcweir SetText(aFormToken.sText); 1983cdf0e10cSrcweir } 1984cdf0e10cSrcweir }; 1985cdf0e10cSrcweir 1986cdf0e10cSrcweir //--------------------------------------------------- 1987cdf0e10cSrcweir void SwTOXButton::KeyInput( const KeyEvent& rKEvt ) 1988cdf0e10cSrcweir { 1989cdf0e10cSrcweir sal_Bool bCall = sal_False; 1990cdf0e10cSrcweir KeyCode aCode = rKEvt.GetKeyCode(); 1991cdf0e10cSrcweir if(aCode.GetCode() == KEY_RIGHT) 1992cdf0e10cSrcweir { 1993cdf0e10cSrcweir bNextControl = sal_True; 1994cdf0e10cSrcweir bCall = sal_True; 1995cdf0e10cSrcweir } 1996cdf0e10cSrcweir else if(aCode.GetCode() == KEY_LEFT ) 1997cdf0e10cSrcweir { 1998cdf0e10cSrcweir bNextControl = sal_False; 1999cdf0e10cSrcweir bCall = sal_True; 2000cdf0e10cSrcweir } 2001cdf0e10cSrcweir else if(aCode.GetCode() == KEY_DELETE) 2002cdf0e10cSrcweir { 2003cdf0e10cSrcweir m_pParent->RemoveControl(this, sal_True); 2004cdf0e10cSrcweir //this is invalid here 2005cdf0e10cSrcweir return; 2006cdf0e10cSrcweir } 2007*ca62e2c2SSteve Yin //IAccessibility2 Impplementaton 2009----- 2008*ca62e2c2SSteve Yin else if ( (aCode.GetCode() == KEY_F3) && aCode.IsShift() && !aCode.IsMod1() && !aCode.IsMod2() ) 2009*ca62e2c2SSteve Yin { 2010*ca62e2c2SSteve Yin if ( m_pParent ) 2011*ca62e2c2SSteve Yin { 2012*ca62e2c2SSteve Yin m_pParent->SetFocus2theAllBtn(); 2013*ca62e2c2SSteve Yin } 2014*ca62e2c2SSteve Yin } 2015*ca62e2c2SSteve Yin //-----IAccessibility2 Impplementaton 2009 2016cdf0e10cSrcweir if(bCall && aPrevNextControlLink.IsSet()) 2017cdf0e10cSrcweir aPrevNextControlLink.Call(this); 2018cdf0e10cSrcweir else 2019cdf0e10cSrcweir PushButton::KeyInput(rKEvt); 2020cdf0e10cSrcweir } 2021cdf0e10cSrcweir //--------------------------------------------------- 2022cdf0e10cSrcweir void SwTOXButton::RequestHelp( const HelpEvent& rHEvt ) 2023cdf0e10cSrcweir { 2024cdf0e10cSrcweir if(!m_pParent->CreateQuickHelp(this, aFormToken, rHEvt)) 2025cdf0e10cSrcweir Button::RequestHelp(rHEvt); 2026cdf0e10cSrcweir } 2027cdf0e10cSrcweir /* -----------------------------23.12.99 14:28-------------------------------- 2028cdf0e10cSrcweir 2029cdf0e10cSrcweir ---------------------------------------------------------------------------*/ 2030cdf0e10cSrcweir SwIdxTreeListBox::SwIdxTreeListBox(SwTOXEntryTabPage* pPar, const ResId& rResId) : 2031cdf0e10cSrcweir SvTreeListBox(pPar, rResId), 2032cdf0e10cSrcweir pParent(pPar) 2033cdf0e10cSrcweir { 2034cdf0e10cSrcweir } 2035cdf0e10cSrcweir /* -----------------------------23.12.99 14:19-------------------------------- 2036cdf0e10cSrcweir 2037cdf0e10cSrcweir ---------------------------------------------------------------------------*/ 2038cdf0e10cSrcweir void SwIdxTreeListBox::RequestHelp( const HelpEvent& rHEvt ) 2039cdf0e10cSrcweir { 2040cdf0e10cSrcweir if( rHEvt.GetMode() & HELPMODE_QUICK ) 2041cdf0e10cSrcweir { 2042cdf0e10cSrcweir Point aPos( ScreenToOutputPixel( rHEvt.GetMousePosPixel() )); 2043cdf0e10cSrcweir SvLBoxEntry* pEntry = GetEntry( aPos ); 2044cdf0e10cSrcweir if( pEntry ) 2045cdf0e10cSrcweir { 2046cdf0e10cSrcweir sal_uInt16 nLevel = static_cast< sal_uInt16 >(GetModel()->GetAbsPos(pEntry)); 2047cdf0e10cSrcweir String sEntry = pParent->GetLevelHelp(++nLevel); 2048cdf0e10cSrcweir if('*' == sEntry) 2049cdf0e10cSrcweir sEntry = GetEntryText(pEntry); 2050cdf0e10cSrcweir if(sEntry.Len()) 2051cdf0e10cSrcweir { 2052cdf0e10cSrcweir SvLBoxTab* pTab; 2053cdf0e10cSrcweir SvLBoxItem* pItem = GetItem( pEntry, aPos.X(), &pTab ); 2054cdf0e10cSrcweir if( pItem && SV_ITEM_ID_LBOXSTRING == pItem->IsA()) 2055cdf0e10cSrcweir { 2056cdf0e10cSrcweir aPos = GetEntryPosition( pEntry ); 2057cdf0e10cSrcweir 2058cdf0e10cSrcweir aPos.X() = GetTabPos( pEntry, pTab ); 2059cdf0e10cSrcweir Size aSize( pItem->GetSize( this, pEntry ) ); 2060cdf0e10cSrcweir 2061cdf0e10cSrcweir if((aPos.X() + aSize.Width()) > GetSizePixel().Width()) 2062cdf0e10cSrcweir aSize.Width() = GetSizePixel().Width() - aPos.X(); 2063cdf0e10cSrcweir 2064cdf0e10cSrcweir aPos = OutputToScreenPixel(aPos); 2065cdf0e10cSrcweir Rectangle aItemRect( aPos, aSize ); 2066cdf0e10cSrcweir Help::ShowQuickHelp( this, aItemRect, sEntry, 2067cdf0e10cSrcweir QUICKHELP_LEFT|QUICKHELP_VCENTER ); 2068cdf0e10cSrcweir } 2069cdf0e10cSrcweir } 2070cdf0e10cSrcweir } 2071cdf0e10cSrcweir } 2072cdf0e10cSrcweir else 2073cdf0e10cSrcweir SvTreeListBox::RequestHelp(rHEvt); 2074cdf0e10cSrcweir } 2075cdf0e10cSrcweir //--------------------------------------------------- 2076cdf0e10cSrcweir SwTOXEntryTabPage::SwTOXEntryTabPage(Window* pParent, const SfxItemSet& rAttrSet) : 2077cdf0e10cSrcweir SfxTabPage(pParent, SW_RES(TP_TOX_ENTRY), rAttrSet), 2078cdf0e10cSrcweir aLevelFT(this, SW_RES(FT_LEVEL )), 2079cdf0e10cSrcweir aLevelLB(this, SW_RES(LB_LEVEL )), 2080cdf0e10cSrcweir aEntryFL(this, SW_RES(FL_ENTRY )), 2081cdf0e10cSrcweir 2082cdf0e10cSrcweir aTokenFT(this, SW_RES(FT_TOKEN )), 2083cdf0e10cSrcweir aTokenWIN(this, SW_RES(WIN_TOKEN )), 2084cdf0e10cSrcweir aAllLevelsPB(this, SW_RES(PB_ALL_LEVELS )), 2085cdf0e10cSrcweir 2086cdf0e10cSrcweir aEntryNoPB(this, SW_RES(PB_ENTRYNO )), 2087cdf0e10cSrcweir aEntryPB(this, SW_RES(PB_ENTRY )), 2088cdf0e10cSrcweir aTabPB(this, SW_RES(PB_TAB )), 2089cdf0e10cSrcweir aChapterInfoPB(this, SW_RES(PB_CHAPTERINFO )), 2090cdf0e10cSrcweir aPageNoPB(this, SW_RES(PB_PAGENO )), 2091cdf0e10cSrcweir aHyperLinkPB(this, SW_RES(PB_HYPERLINK )), 2092cdf0e10cSrcweir 2093cdf0e10cSrcweir aAuthFieldsLB(this, SW_RES(LB_AUTHFIELD )), 2094cdf0e10cSrcweir aAuthInsertPB(this, SW_RES(PB_AUTHINSERT )), 2095cdf0e10cSrcweir aAuthRemovePB(this, SW_RES(PB_AUTHREMOVE )), 2096cdf0e10cSrcweir 2097cdf0e10cSrcweir aCharStyleFT(this, SW_RES(FT_CHARSTYLE )), 2098cdf0e10cSrcweir aCharStyleLB(this, SW_RES(LB_CHARSTYLE )), 2099cdf0e10cSrcweir aEditStylePB(this, SW_RES(PB_EDITSTYLE )), 2100cdf0e10cSrcweir 2101cdf0e10cSrcweir aChapterEntryFT(this, SW_RES(FT_CHAPTERENTRY )), 2102cdf0e10cSrcweir aChapterEntryLB(this, SW_RES(LB_CHAPTERENTRY )), 2103cdf0e10cSrcweir 2104cdf0e10cSrcweir aNumberFormatFT(this, SW_RES(FT_ENTRY_NO )),//i53420 2105cdf0e10cSrcweir aNumberFormatLB(this, SW_RES(LB_ENTRY_NO )), 2106cdf0e10cSrcweir aEntryOutlineLevelFT(this, SW_RES(FT_LEVEL_OL )),//i53420 2107cdf0e10cSrcweir aEntryOutlineLevelNF(this, SW_RES(NF_LEVEL_OL )), 2108cdf0e10cSrcweir 2109cdf0e10cSrcweir aFillCharFT(this, SW_RES(FT_FILLCHAR )), 2110cdf0e10cSrcweir aFillCharCB(this, SW_RES(CB_FILLCHAR )), 2111cdf0e10cSrcweir aTabPosFT(this, SW_RES(FT_TABPOS )), 2112cdf0e10cSrcweir aTabPosMF(this, SW_RES(MF_TABPOS )), 2113cdf0e10cSrcweir aAutoRightCB(this, SW_RES(CB_AUTORIGHT )), 2114cdf0e10cSrcweir aFormatFL(this, SW_RES(FL_FORMAT )), 2115cdf0e10cSrcweir 2116cdf0e10cSrcweir 2117cdf0e10cSrcweir aRelToStyleCB(this, SW_RES(CB_RELTOSTYLE )), 2118cdf0e10cSrcweir aMainEntryStyleFT(this, SW_RES(FT_MAIN_ENTRY_STYLE)), 2119cdf0e10cSrcweir aMainEntryStyleLB(this, SW_RES(LB_MAIN_ENTRY_STYLE)), 2120cdf0e10cSrcweir aAlphaDelimCB(this, SW_RES(CB_ALPHADELIM )), 2121cdf0e10cSrcweir aCommaSeparatedCB(this, SW_RES(CB_COMMASEPARATED )), 2122cdf0e10cSrcweir 2123cdf0e10cSrcweir aSortDocPosRB(this, SW_RES(RB_DOCPOS )), 2124cdf0e10cSrcweir aSortContentRB(this, SW_RES(RB_SORTCONTENT )), 2125cdf0e10cSrcweir aSortingFL(this, SW_RES(FL_SORTING )), 2126cdf0e10cSrcweir 2127cdf0e10cSrcweir aFirstKeyFT(this, SW_RES(FT_FIRSTKEY )), 2128cdf0e10cSrcweir aFirstKeyLB(this, SW_RES(LB_FIRSTKEY )), 2129cdf0e10cSrcweir aFirstSortUpRB(this, SW_RES(RB_SORTUP1 )), 2130cdf0e10cSrcweir aFirstSortDownRB(this, SW_RES(RB_SORTDOWN1 )), 2131cdf0e10cSrcweir 2132cdf0e10cSrcweir aSecondKeyFT(this, SW_RES(FT_SECONDKEY )), 2133cdf0e10cSrcweir aSecondKeyLB(this, SW_RES(LB_SECONDKEY )), 2134cdf0e10cSrcweir aSecondSortUpRB(this, SW_RES(RB_SORTUP2 )), 2135cdf0e10cSrcweir aSecondSortDownRB(this, SW_RES(RB_SORTDOWN2 )), 2136cdf0e10cSrcweir 2137cdf0e10cSrcweir aThirdKeyFT(this, SW_RES(FT_THIRDDKEY )), 2138cdf0e10cSrcweir aThirdKeyLB(this, SW_RES(LB_THIRDKEY )), 2139cdf0e10cSrcweir aThirdSortUpRB(this, SW_RES(RB_SORTUP3 )), 2140cdf0e10cSrcweir aThirdSortDownRB(this, SW_RES(RB_SORTDOWN3 )), 2141cdf0e10cSrcweir 2142cdf0e10cSrcweir aSortKeyFL(this, SW_RES(FL_SORTKEY )), 2143cdf0e10cSrcweir 2144cdf0e10cSrcweir sDelimStr( SW_RES(STR_DELIM)), 2145cdf0e10cSrcweir sAuthTypeStr( SW_RES(ST_AUTHTYPE)), 2146cdf0e10cSrcweir 2147cdf0e10cSrcweir sNoCharStyle( SW_RES(STR_NO_CHAR_STYLE)), 2148cdf0e10cSrcweir sNoCharSortKey( SW_RES(STR_NOSORTKEY )), 2149cdf0e10cSrcweir m_pCurrentForm(0), 2150cdf0e10cSrcweir bInLevelHdl(sal_False) 2151cdf0e10cSrcweir { 2152cdf0e10cSrcweir aEditStylePB.SetAccessibleRelationMemberOf(&aEntryFL); 2153cdf0e10cSrcweir aHyperLinkPB.SetAccessibleRelationMemberOf(&aEntryFL); 2154cdf0e10cSrcweir aPageNoPB.SetAccessibleRelationMemberOf(&aEntryFL); 2155cdf0e10cSrcweir aTabPB.SetAccessibleRelationMemberOf(&aEntryFL); 2156cdf0e10cSrcweir aEntryPB.SetAccessibleRelationMemberOf(&aEntryFL); 2157cdf0e10cSrcweir aEntryNoPB.SetAccessibleRelationMemberOf(&aEntryFL); 2158cdf0e10cSrcweir aAllLevelsPB.SetAccessibleRelationMemberOf(&aEntryFL); 2159cdf0e10cSrcweir aTokenWIN.SetAccessibleRelationMemberOf(&aEntryFL); 2160cdf0e10cSrcweir aTokenWIN.SetAccessibleRelationLabeledBy(&aTokenFT); 2161cdf0e10cSrcweir 2162cdf0e10cSrcweir Image aSortUpHC(SW_RES(IMG_SORTUP_HC )); 2163cdf0e10cSrcweir aFirstSortUpRB.SetModeRadioImage(aSortUpHC,BMP_COLOR_HIGHCONTRAST); 2164cdf0e10cSrcweir aSecondSortUpRB.SetModeRadioImage(aSortUpHC,BMP_COLOR_HIGHCONTRAST); 2165cdf0e10cSrcweir aThirdSortUpRB.SetModeRadioImage(aSortUpHC,BMP_COLOR_HIGHCONTRAST); 2166cdf0e10cSrcweir 2167cdf0e10cSrcweir Image aSortDownHC(SW_RES(IMG_SORTDOWN_HC )); 2168cdf0e10cSrcweir aFirstSortDownRB.SetModeRadioImage(aSortDownHC,BMP_COLOR_HIGHCONTRAST); 2169cdf0e10cSrcweir aSecondSortDownRB.SetModeRadioImage(aSortDownHC,BMP_COLOR_HIGHCONTRAST); 2170cdf0e10cSrcweir aThirdSortDownRB.SetModeRadioImage(aSortDownHC,BMP_COLOR_HIGHCONTRAST); 2171cdf0e10cSrcweir FreeResource(); 2172cdf0e10cSrcweir 2173cdf0e10cSrcweir sLevelStr = aLevelFT.GetText(); 2174cdf0e10cSrcweir aLevelLB.SetStyle( aLevelLB.GetStyle() | WB_HSCROLL ); 2175cdf0e10cSrcweir aLevelLB.SetSpaceBetweenEntries(0); 2176cdf0e10cSrcweir aLevelLB.SetSelectionMode( SINGLE_SELECTION ); 2177cdf0e10cSrcweir aLevelLB.SetHighlightRange(); // select full width 2178cdf0e10cSrcweir aLevelLB.SetHelpId(HID_INSERT_INDEX_ENTRY_LEVEL_LB); 2179cdf0e10cSrcweir aLevelLB.Show(); 2180cdf0e10cSrcweir 2181cdf0e10cSrcweir aLastTOXType.eType = (TOXTypes)USHRT_MAX; 2182cdf0e10cSrcweir aLastTOXType.nIndex = 0; 2183cdf0e10cSrcweir //aLevelGBSize = aLevelGB.GetSizePixel(); 2184cdf0e10cSrcweir aLevelFLSize = aLevelFT.GetSizePixel(); 2185cdf0e10cSrcweir 2186cdf0e10cSrcweir SetExchangeSupport(); 2187cdf0e10cSrcweir aEntryNoPB.SetClickHdl(LINK(this, SwTOXEntryTabPage, InsertTokenHdl)); 2188cdf0e10cSrcweir aEntryPB.SetClickHdl(LINK(this, SwTOXEntryTabPage, InsertTokenHdl)); 2189cdf0e10cSrcweir aChapterInfoPB.SetClickHdl(LINK(this, SwTOXEntryTabPage, InsertTokenHdl)); 2190cdf0e10cSrcweir aPageNoPB.SetClickHdl(LINK(this, SwTOXEntryTabPage, InsertTokenHdl)); 2191cdf0e10cSrcweir aTabPB.SetClickHdl(LINK(this, SwTOXEntryTabPage, InsertTokenHdl)); 2192cdf0e10cSrcweir aHyperLinkPB.SetClickHdl(LINK(this, SwTOXEntryTabPage, InsertTokenHdl)); 2193cdf0e10cSrcweir aEditStylePB.SetClickHdl(LINK(this, SwTOXEntryTabPage, EditStyleHdl)); 2194cdf0e10cSrcweir aLevelLB.SetSelectHdl(LINK(this, SwTOXEntryTabPage, LevelHdl)); 2195cdf0e10cSrcweir aTokenWIN.SetButtonSelectedHdl(LINK(this, SwTOXEntryTabPage, TokenSelectedHdl)); 2196cdf0e10cSrcweir aTokenWIN.SetModifyHdl(LINK(this, SwTOXEntryTabPage, ModifyHdl)); 2197cdf0e10cSrcweir aCharStyleLB.SetSelectHdl(LINK(this, SwTOXEntryTabPage, StyleSelectHdl)); 2198cdf0e10cSrcweir aCharStyleLB.InsertEntry(sNoCharStyle); 2199cdf0e10cSrcweir aChapterEntryLB.SetSelectHdl(LINK(this, SwTOXEntryTabPage, ChapterInfoHdl)); 2200cdf0e10cSrcweir aEntryOutlineLevelNF.SetModifyHdl(LINK(this, SwTOXEntryTabPage, ChapterInfoOutlineHdl)); 2201cdf0e10cSrcweir aNumberFormatLB.SetSelectHdl(LINK(this, SwTOXEntryTabPage, NumberFormatHdl)); 2202cdf0e10cSrcweir 2203cdf0e10cSrcweir aTabPosMF.SetModifyHdl(LINK(this, SwTOXEntryTabPage, TabPosHdl)); 2204cdf0e10cSrcweir aFillCharCB.SetModifyHdl(LINK(this, SwTOXEntryTabPage, FillCharHdl)); 2205cdf0e10cSrcweir aAutoRightCB.SetClickHdl(LINK(this, SwTOXEntryTabPage, AutoRightHdl)); 2206cdf0e10cSrcweir aAuthInsertPB.SetClickHdl(LINK(this, SwTOXEntryTabPage, RemoveInsertAuthHdl)); 2207cdf0e10cSrcweir aAuthRemovePB.SetClickHdl(LINK(this, SwTOXEntryTabPage, RemoveInsertAuthHdl)); 2208cdf0e10cSrcweir aSortDocPosRB.SetClickHdl(LINK(this, SwTOXEntryTabPage, SortKeyHdl)); 2209cdf0e10cSrcweir aSortContentRB.SetClickHdl(LINK(this, SwTOXEntryTabPage, SortKeyHdl)); 2210cdf0e10cSrcweir aAllLevelsPB.SetClickHdl(LINK(this, SwTOXEntryTabPage, AllLevelsHdl)); 2211cdf0e10cSrcweir 2212cdf0e10cSrcweir aAlphaDelimCB.SetClickHdl(LINK(this, SwTOXEntryTabPage, ModifyHdl)); 2213cdf0e10cSrcweir aCommaSeparatedCB.SetClickHdl(LINK(this, SwTOXEntryTabPage, ModifyHdl)); 2214cdf0e10cSrcweir aRelToStyleCB.SetClickHdl(LINK(this, SwTOXEntryTabPage, ModifyHdl)); 2215cdf0e10cSrcweir 2216cdf0e10cSrcweir FieldUnit aMetric = ::GetDfltMetric(sal_False); 2217cdf0e10cSrcweir SetMetric(aTabPosMF, aMetric); 2218cdf0e10cSrcweir 2219cdf0e10cSrcweir aSortDocPosRB.Check(); 2220cdf0e10cSrcweir 2221cdf0e10cSrcweir aFillCharCB.SetMaxTextLen(1); 2222cdf0e10cSrcweir aFillCharCB.InsertEntry(' '); 2223cdf0e10cSrcweir aFillCharCB.InsertEntry('.'); 2224cdf0e10cSrcweir aFillCharCB.InsertEntry('-'); 2225cdf0e10cSrcweir aFillCharCB.InsertEntry('_'); 2226cdf0e10cSrcweir 2227cdf0e10cSrcweir aButtonPositions[0] = aEntryNoPB.GetPosPixel(); 2228cdf0e10cSrcweir aButtonPositions[1] = aEntryPB.GetPosPixel(); 2229cdf0e10cSrcweir aButtonPositions[2] = aChapterInfoPB.GetPosPixel(); 2230cdf0e10cSrcweir aButtonPositions[3] = aPageNoPB.GetPosPixel(); 2231cdf0e10cSrcweir aButtonPositions[4] = aTabPB.GetPosPixel(); 2232cdf0e10cSrcweir 2233cdf0e10cSrcweir aRelToStylePos = aRelToStyleCB.GetPosPixel(); 2234cdf0e10cSrcweir aRelToStyleIdxPos = aCommaSeparatedCB.GetPosPixel(); 2235cdf0e10cSrcweir aRelToStyleIdxPos.Y() += 2236cdf0e10cSrcweir (aRelToStyleIdxPos.Y() - aAlphaDelimCB.GetPosPixel().Y()); 2237cdf0e10cSrcweir aEditStylePB.Enable(sal_False); 2238cdf0e10cSrcweir 2239cdf0e10cSrcweir //get position for Numbering and other stuff 2240cdf0e10cSrcweir aChapterEntryFTPosition = aChapterEntryFT.GetPosPixel(); 2241cdf0e10cSrcweir aEntryOutlineLevelFTPosition = aEntryOutlineLevelFT.GetPosPixel(); 2242cdf0e10cSrcweir nBiasToEntryPoint = aEntryOutlineLevelNF.GetPosPixel().X() - 2243cdf0e10cSrcweir aEntryOutlineLevelFT.GetPosPixel().X(); 2244cdf0e10cSrcweir 2245cdf0e10cSrcweir //fill the types in 2246cdf0e10cSrcweir sal_uInt16 i; 2247cdf0e10cSrcweir for( i = 0; i < AUTH_FIELD_END; i++) 2248cdf0e10cSrcweir { 2249cdf0e10cSrcweir String sTmp(SW_RES(STR_AUTH_FIELD_START + i)); 2250cdf0e10cSrcweir sal_uInt16 nPos = aAuthFieldsLB.InsertEntry(sTmp); 2251cdf0e10cSrcweir aAuthFieldsLB.SetEntryData(nPos, reinterpret_cast< void * >(sal::static_int_cast< sal_uIntPtr >(i))); 2252cdf0e10cSrcweir } 2253cdf0e10cSrcweir sal_uInt16 nPos = aFirstKeyLB.InsertEntry(sNoCharSortKey); 2254cdf0e10cSrcweir aFirstKeyLB.SetEntryData(nPos, reinterpret_cast< void * >(sal::static_int_cast< sal_uIntPtr >(USHRT_MAX))); 2255cdf0e10cSrcweir nPos = aSecondKeyLB.InsertEntry(sNoCharSortKey); 2256cdf0e10cSrcweir aSecondKeyLB.SetEntryData(nPos, reinterpret_cast< void * >(sal::static_int_cast< sal_uIntPtr >(USHRT_MAX))); 2257cdf0e10cSrcweir nPos = aThirdKeyLB.InsertEntry(sNoCharSortKey); 2258cdf0e10cSrcweir aThirdKeyLB.SetEntryData(nPos, reinterpret_cast< void * >(sal::static_int_cast< sal_uIntPtr >(USHRT_MAX))); 2259cdf0e10cSrcweir 2260cdf0e10cSrcweir for( i = 0; i < AUTH_FIELD_END; i++) 2261cdf0e10cSrcweir { 2262cdf0e10cSrcweir String sTmp(aAuthFieldsLB.GetEntry(i)); 2263cdf0e10cSrcweir void* pEntryData = aAuthFieldsLB.GetEntryData(i); 2264cdf0e10cSrcweir nPos = aFirstKeyLB.InsertEntry(sTmp); 2265cdf0e10cSrcweir aFirstKeyLB.SetEntryData(nPos, pEntryData); 2266cdf0e10cSrcweir nPos = aSecondKeyLB.InsertEntry(sTmp); 2267cdf0e10cSrcweir aSecondKeyLB.SetEntryData(nPos, pEntryData); 2268cdf0e10cSrcweir nPos = aThirdKeyLB.InsertEntry(sTmp); 2269cdf0e10cSrcweir aThirdKeyLB.SetEntryData(nPos, pEntryData); 2270cdf0e10cSrcweir } 2271cdf0e10cSrcweir aFirstKeyLB.SelectEntryPos(0); 2272cdf0e10cSrcweir aSecondKeyLB.SelectEntryPos(0); 2273cdf0e10cSrcweir aThirdKeyLB.SelectEntryPos(0); 2274cdf0e10cSrcweir } 2275cdf0e10cSrcweir /* -----------------30.11.99 13:37------------------- 2276cdf0e10cSrcweir pVoid is used as signal to change all levels of the example 2277cdf0e10cSrcweir --------------------------------------------------*/ 2278cdf0e10cSrcweir IMPL_LINK(SwTOXEntryTabPage, ModifyHdl, void*, pVoid) 2279cdf0e10cSrcweir { 2280cdf0e10cSrcweir UpdateDescriptor(); 2281cdf0e10cSrcweir SwMultiTOXTabDialog* pTOXDlg = (SwMultiTOXTabDialog*)GetTabDialog(); 2282cdf0e10cSrcweir 2283cdf0e10cSrcweir if(pTOXDlg) 2284cdf0e10cSrcweir { 2285cdf0e10cSrcweir sal_uInt16 nCurLevel = static_cast< sal_uInt16 >(aLevelLB.GetModel()->GetAbsPos(aLevelLB.FirstSelected()) + 1); 2286cdf0e10cSrcweir if(aLastTOXType.eType == TOX_CONTENT && pVoid) 2287cdf0e10cSrcweir nCurLevel = USHRT_MAX; 2288cdf0e10cSrcweir pTOXDlg->CreateOrUpdateExample( 2289cdf0e10cSrcweir pTOXDlg->GetCurrentTOXType().eType, TOX_PAGE_ENTRY, nCurLevel); 2290cdf0e10cSrcweir } 2291cdf0e10cSrcweir return 0; 2292cdf0e10cSrcweir } 2293cdf0e10cSrcweir 2294cdf0e10cSrcweir /*-- 16.06.99 10:47:33--------------------------------------------------- 2295cdf0e10cSrcweir 2296cdf0e10cSrcweir -----------------------------------------------------------------------*/ 2297cdf0e10cSrcweir SwTOXEntryTabPage::~SwTOXEntryTabPage() 2298cdf0e10cSrcweir { 2299cdf0e10cSrcweir } 2300cdf0e10cSrcweir /*-- 16.06.99 10:47:33--------------------------------------------------- 2301cdf0e10cSrcweir 2302cdf0e10cSrcweir -----------------------------------------------------------------------*/ 2303cdf0e10cSrcweir sal_Bool SwTOXEntryTabPage::FillItemSet( SfxItemSet& ) 2304cdf0e10cSrcweir { 2305cdf0e10cSrcweir // nothing to do 2306cdf0e10cSrcweir return sal_True; 2307cdf0e10cSrcweir } 2308cdf0e10cSrcweir /*-- 16.06.99 10:47:34--------------------------------------------------- 2309cdf0e10cSrcweir 2310cdf0e10cSrcweir -----------------------------------------------------------------------*/ 2311cdf0e10cSrcweir void SwTOXEntryTabPage::Reset( const SfxItemSet& ) 2312cdf0e10cSrcweir { 2313cdf0e10cSrcweir SwMultiTOXTabDialog* pTOXDlg = (SwMultiTOXTabDialog*)GetTabDialog(); 2314cdf0e10cSrcweir const CurTOXType aCurType = pTOXDlg->GetCurrentTOXType(); 2315cdf0e10cSrcweir m_pCurrentForm = pTOXDlg->GetForm(aCurType); 2316cdf0e10cSrcweir if(TOX_INDEX == aCurType.eType) 2317cdf0e10cSrcweir { 2318cdf0e10cSrcweir SwTOXDescription& rDesc = pTOXDlg->GetTOXDescription(aCurType); 2319cdf0e10cSrcweir String sMainEntryCharStyle = rDesc.GetMainEntryCharStyle(); 2320cdf0e10cSrcweir if(sMainEntryCharStyle.Len()) 2321cdf0e10cSrcweir { 2322cdf0e10cSrcweir if( LISTBOX_ENTRY_NOTFOUND == 2323cdf0e10cSrcweir aMainEntryStyleLB.GetEntryPos(sMainEntryCharStyle)) 2324cdf0e10cSrcweir aMainEntryStyleLB.InsertEntry( 2325cdf0e10cSrcweir sMainEntryCharStyle); 2326cdf0e10cSrcweir aMainEntryStyleLB.SelectEntry(sMainEntryCharStyle); 2327cdf0e10cSrcweir } 2328cdf0e10cSrcweir else 2329cdf0e10cSrcweir aMainEntryStyleLB.SelectEntry(sNoCharStyle); 2330cdf0e10cSrcweir aAlphaDelimCB.Check( 0 != (rDesc.GetIndexOptions() & nsSwTOIOptions::TOI_ALPHA_DELIMITTER) ); 2331cdf0e10cSrcweir } 2332cdf0e10cSrcweir aRelToStyleCB.Check(m_pCurrentForm->IsRelTabPos()); 2333cdf0e10cSrcweir aCommaSeparatedCB.Check(m_pCurrentForm->IsCommaSeparated()); 2334cdf0e10cSrcweir } 2335cdf0e10cSrcweir /*-- 16.06.99 10:47:34--------------------------------------------------- 2336cdf0e10cSrcweir 2337cdf0e10cSrcweir -----------------------------------------------------------------------*/ 2338cdf0e10cSrcweir void lcl_ChgWidth(Window& rWin, long nDiff) 2339cdf0e10cSrcweir { 2340cdf0e10cSrcweir Size aTempSz(rWin.GetSizePixel()); 2341cdf0e10cSrcweir aTempSz.Width() += nDiff; 2342cdf0e10cSrcweir rWin.SetSizePixel(aTempSz); 2343cdf0e10cSrcweir } 2344cdf0e10cSrcweir /* ---------------------------------------------------------------------- 2345cdf0e10cSrcweir 2346cdf0e10cSrcweir -----------------------------------------------------------------------*/ 2347cdf0e10cSrcweir void lcl_ChgXPos(Window& rWin, long nDiff) 2348cdf0e10cSrcweir { 2349cdf0e10cSrcweir Point aTempPos(rWin.GetPosPixel()); 2350cdf0e10cSrcweir aTempPos.X() += nDiff; 2351cdf0e10cSrcweir rWin.SetPosPixel(aTempPos); 2352cdf0e10cSrcweir } 2353cdf0e10cSrcweir /* ---------------------------------------------------------------------- 2354cdf0e10cSrcweir 2355cdf0e10cSrcweir -----------------------------------------------------------------------*/ 2356cdf0e10cSrcweir void SwTOXEntryTabPage::ActivatePage( const SfxItemSet& /*rSet*/) 2357cdf0e10cSrcweir { 2358cdf0e10cSrcweir SwMultiTOXTabDialog* pTOXDlg = (SwMultiTOXTabDialog*)GetTabDialog(); 2359cdf0e10cSrcweir const CurTOXType aCurType = pTOXDlg->GetCurrentTOXType(); 2360cdf0e10cSrcweir 2361cdf0e10cSrcweir m_pCurrentForm = pTOXDlg->GetForm(aCurType); 2362cdf0e10cSrcweir if( !( aLastTOXType == aCurType )) 2363cdf0e10cSrcweir { 2364cdf0e10cSrcweir sal_Bool bToxIsAuthorities = TOX_AUTHORITIES == aCurType.eType; 2365cdf0e10cSrcweir sal_Bool bToxIsIndex = TOX_INDEX == aCurType.eType; 2366cdf0e10cSrcweir sal_Bool bToxIsContent = TOX_CONTENT == aCurType.eType; 2367cdf0e10cSrcweir 2368cdf0e10cSrcweir aLevelLB.Clear(); 2369cdf0e10cSrcweir for(sal_uInt16 i = 1; i < m_pCurrentForm->GetFormMax(); i++) 2370cdf0e10cSrcweir { 2371cdf0e10cSrcweir if(bToxIsAuthorities) 2372cdf0e10cSrcweir aLevelLB.InsertEntry( SwAuthorityFieldType::GetAuthTypeName( 2373cdf0e10cSrcweir (ToxAuthorityType) (i - 1)) ); 2374cdf0e10cSrcweir else if( bToxIsIndex ) 2375cdf0e10cSrcweir { 2376cdf0e10cSrcweir if(i == 1) 2377cdf0e10cSrcweir aLevelLB.InsertEntry( sDelimStr ); 2378cdf0e10cSrcweir else 2379cdf0e10cSrcweir aLevelLB.InsertEntry( String::CreateFromInt32(i - 1) ); 2380cdf0e10cSrcweir } 2381cdf0e10cSrcweir else 2382cdf0e10cSrcweir aLevelLB.InsertEntry(String::CreateFromInt32(i)); 2383cdf0e10cSrcweir } 2384cdf0e10cSrcweir if(bToxIsAuthorities) 2385cdf0e10cSrcweir { 2386cdf0e10cSrcweir // 2387cdf0e10cSrcweir SwWrtShell& rSh = pTOXDlg->GetWrtShell(); 2388cdf0e10cSrcweir const SwAuthorityFieldType* pFType = (const SwAuthorityFieldType*) 2389cdf0e10cSrcweir rSh.GetFldType(RES_AUTHORITY, aEmptyStr); 2390cdf0e10cSrcweir if(pFType) 2391cdf0e10cSrcweir { 2392cdf0e10cSrcweir if(pFType->IsSortByDocument()) 2393cdf0e10cSrcweir aSortDocPosRB.Check(); 2394cdf0e10cSrcweir else 2395cdf0e10cSrcweir { 2396cdf0e10cSrcweir aSortContentRB.Check(); 2397cdf0e10cSrcweir sal_uInt16 nKeyCount = pFType->GetSortKeyCount(); 2398cdf0e10cSrcweir if(0 < nKeyCount) 2399cdf0e10cSrcweir { 2400cdf0e10cSrcweir const SwTOXSortKey* pKey = pFType->GetSortKey(0); 2401cdf0e10cSrcweir aFirstKeyLB.SelectEntryPos( 2402cdf0e10cSrcweir aFirstKeyLB.GetEntryPos((void*)(sal_uInt32)pKey->eField)); 2403cdf0e10cSrcweir aFirstSortUpRB.Check(pKey->bSortAscending); 2404cdf0e10cSrcweir aFirstSortDownRB.Check(!pKey->bSortAscending); 2405cdf0e10cSrcweir } 2406cdf0e10cSrcweir if(1 < nKeyCount) 2407cdf0e10cSrcweir { 2408cdf0e10cSrcweir const SwTOXSortKey* pKey = pFType->GetSortKey(1); 2409cdf0e10cSrcweir aSecondKeyLB.SelectEntryPos( 2410cdf0e10cSrcweir aSecondKeyLB.GetEntryPos((void*)(sal_uInt32)pKey->eField)); 2411cdf0e10cSrcweir aSecondSortUpRB.Check(pKey->bSortAscending); 2412cdf0e10cSrcweir aSecondSortDownRB.Check(!pKey->bSortAscending); 2413cdf0e10cSrcweir } 2414cdf0e10cSrcweir if(2 < nKeyCount) 2415cdf0e10cSrcweir { 2416cdf0e10cSrcweir const SwTOXSortKey* pKey = pFType->GetSortKey(2); 2417cdf0e10cSrcweir aThirdKeyLB.SelectEntryPos( 2418cdf0e10cSrcweir aThirdKeyLB.GetEntryPos((void*)(sal_uInt32)pKey->eField)); 2419cdf0e10cSrcweir aThirdSortUpRB.Check(pKey->bSortAscending); 2420cdf0e10cSrcweir aThirdSortDownRB.Check(!pKey->bSortAscending); 2421cdf0e10cSrcweir } 2422cdf0e10cSrcweir } 2423cdf0e10cSrcweir } 2424cdf0e10cSrcweir SortKeyHdl(aSortDocPosRB.IsChecked() ? &aSortDocPosRB : &aSortContentRB); 2425cdf0e10cSrcweir aLevelFT.SetText(sAuthTypeStr); 2426cdf0e10cSrcweir } 2427cdf0e10cSrcweir else 2428cdf0e10cSrcweir aLevelFT.SetText(sLevelStr); 2429cdf0e10cSrcweir 2430cdf0e10cSrcweir long nDiff = 0; 2431cdf0e10cSrcweir if( bToxIsAuthorities ? aLevelFT.GetSizePixel() == aLevelFLSize 2432cdf0e10cSrcweir : aLevelFT.GetSizePixel() != aLevelFLSize ) 2433cdf0e10cSrcweir { 2434cdf0e10cSrcweir nDiff = aLevelFLSize.Width(); 2435cdf0e10cSrcweir if( !bToxIsAuthorities ) 2436cdf0e10cSrcweir nDiff *= -1; 2437cdf0e10cSrcweir } 2438cdf0e10cSrcweir 2439cdf0e10cSrcweir if(nDiff) 2440cdf0e10cSrcweir { 2441cdf0e10cSrcweir // lcl_ChgWidth(aLevelFL, nDiff); 2442cdf0e10cSrcweir lcl_ChgWidth(aLevelFT, nDiff); 2443cdf0e10cSrcweir lcl_ChgWidth(aLevelLB, nDiff); 2444cdf0e10cSrcweir lcl_ChgXPos(aCharStyleFT, nDiff); 2445cdf0e10cSrcweir lcl_ChgXPos(aCharStyleLB, nDiff); 2446cdf0e10cSrcweir lcl_ChgWidth(aCharStyleLB, -nDiff); 2447cdf0e10cSrcweir // lcl_ChgXPos(aEditStylePB, -nDiff); 2448cdf0e10cSrcweir lcl_ChgXPos(aFillCharFT, nDiff); 2449cdf0e10cSrcweir lcl_ChgXPos(aFillCharCB, nDiff); 2450cdf0e10cSrcweir lcl_ChgXPos(aTabPosFT, nDiff); 2451cdf0e10cSrcweir lcl_ChgXPos(aTabPosMF, nDiff); 2452cdf0e10cSrcweir lcl_ChgXPos(aAutoRightCB, nDiff); 2453cdf0e10cSrcweir lcl_ChgXPos(aAuthFieldsLB, nDiff); 2454cdf0e10cSrcweir lcl_ChgXPos(aAuthInsertPB, nDiff); 2455cdf0e10cSrcweir lcl_ChgXPos(aAuthRemovePB, nDiff); 2456cdf0e10cSrcweir lcl_ChgXPos(aTokenFT, nDiff); 2457cdf0e10cSrcweir lcl_ChgXPos(aTokenWIN, nDiff); 2458cdf0e10cSrcweir lcl_ChgWidth(aTokenWIN, -nDiff); 2459cdf0e10cSrcweir lcl_ChgXPos(aSortDocPosRB, nDiff); 2460cdf0e10cSrcweir lcl_ChgXPos(aSortContentRB, nDiff); 2461cdf0e10cSrcweir lcl_ChgXPos(aFormatFL, nDiff); 2462cdf0e10cSrcweir lcl_ChgWidth(aFormatFL, -nDiff); 2463cdf0e10cSrcweir lcl_ChgXPos(aSortingFL, nDiff); 2464cdf0e10cSrcweir lcl_ChgWidth(aSortingFL, -nDiff); 2465cdf0e10cSrcweir lcl_ChgXPos(aEntryFL, nDiff); 2466cdf0e10cSrcweir lcl_ChgWidth(aEntryFL, -nDiff); 2467cdf0e10cSrcweir 2468cdf0e10cSrcweir lcl_ChgXPos(aFirstKeyFT, nDiff); 2469cdf0e10cSrcweir lcl_ChgXPos(aFirstKeyLB, nDiff); 2470cdf0e10cSrcweir lcl_ChgXPos(aSecondKeyFT, nDiff); 2471cdf0e10cSrcweir lcl_ChgXPos(aSecondKeyLB, nDiff); 2472cdf0e10cSrcweir lcl_ChgXPos(aThirdKeyFT, nDiff); 2473cdf0e10cSrcweir lcl_ChgXPos(aThirdKeyLB, nDiff); 2474cdf0e10cSrcweir lcl_ChgXPos(aSortKeyFL, nDiff); 2475cdf0e10cSrcweir 2476cdf0e10cSrcweir lcl_ChgWidth(aFirstKeyLB, -nDiff); 2477cdf0e10cSrcweir lcl_ChgWidth(aSecondKeyLB, -nDiff); 2478cdf0e10cSrcweir lcl_ChgWidth(aThirdKeyLB, -nDiff); 2479cdf0e10cSrcweir lcl_ChgWidth(aSortKeyFL, -nDiff); 2480cdf0e10cSrcweir } 2481cdf0e10cSrcweir Link aLink = aLevelLB.GetSelectHdl(); 2482cdf0e10cSrcweir aLevelLB.SetSelectHdl(Link()); 2483cdf0e10cSrcweir aLevelLB.Select( aLevelLB.GetEntry( bToxIsIndex ? 1 : 0 ) ); 2484cdf0e10cSrcweir aLevelLB.SetSelectHdl(aLink); 2485cdf0e10cSrcweir 2486cdf0e10cSrcweir // sort token buttons 2487cdf0e10cSrcweir aEntryNoPB.SetPosPixel(aButtonPositions[0]); 2488cdf0e10cSrcweir aEntryPB.SetPosPixel(aButtonPositions[ bToxIsContent ? 1 : 0]); 2489cdf0e10cSrcweir aChapterInfoPB.SetPosPixel(aButtonPositions[2]); 2490cdf0e10cSrcweir aPageNoPB.SetPosPixel(aButtonPositions[3]); 2491cdf0e10cSrcweir sal_uInt16 nBtPos = 1; 2492cdf0e10cSrcweir if( bToxIsContent ) 2493cdf0e10cSrcweir nBtPos = 2; 2494cdf0e10cSrcweir else if( bToxIsAuthorities ) 2495cdf0e10cSrcweir nBtPos = 4; 2496cdf0e10cSrcweir aTabPB.SetPosPixel(aButtonPositions[nBtPos]); 2497cdf0e10cSrcweir aHyperLinkPB.SetPosPixel(aButtonPositions[4]); 2498cdf0e10cSrcweir 2499cdf0e10cSrcweir //show or hide controls 2500cdf0e10cSrcweir aEntryNoPB.Show( bToxIsContent ); 2501cdf0e10cSrcweir aHyperLinkPB.Show( bToxIsContent ); 2502cdf0e10cSrcweir aRelToStyleCB.Show( !bToxIsAuthorities ); 2503cdf0e10cSrcweir aChapterInfoPB.Show( !bToxIsContent && !bToxIsAuthorities); 2504cdf0e10cSrcweir aEntryPB.Show( !bToxIsAuthorities ); 2505cdf0e10cSrcweir aPageNoPB.Show( !bToxIsAuthorities ); 2506cdf0e10cSrcweir aAuthFieldsLB.Show( bToxIsAuthorities ); 2507cdf0e10cSrcweir aAuthInsertPB.Show( bToxIsAuthorities ); 2508cdf0e10cSrcweir aAuthRemovePB.Show( bToxIsAuthorities ); 2509cdf0e10cSrcweir aFormatFL.Show( !bToxIsAuthorities ); 2510cdf0e10cSrcweir aSortDocPosRB.Show( bToxIsAuthorities ); 2511cdf0e10cSrcweir aSortContentRB.Show( bToxIsAuthorities ); 2512cdf0e10cSrcweir aSortingFL.Show( bToxIsAuthorities ); 2513cdf0e10cSrcweir aFirstKeyFT.Show( bToxIsAuthorities ); 2514cdf0e10cSrcweir aFirstKeyLB.Show( bToxIsAuthorities ); 2515cdf0e10cSrcweir aSecondKeyFT.Show( bToxIsAuthorities ); 2516cdf0e10cSrcweir aSecondKeyLB.Show( bToxIsAuthorities ); 2517cdf0e10cSrcweir aThirdKeyFT.Show( bToxIsAuthorities ); 2518cdf0e10cSrcweir aThirdKeyLB.Show( bToxIsAuthorities ); 2519cdf0e10cSrcweir aSortKeyFL.Show( bToxIsAuthorities ); 2520cdf0e10cSrcweir aFirstSortUpRB.Show( bToxIsAuthorities ); 2521cdf0e10cSrcweir aFirstSortDownRB.Show( bToxIsAuthorities ); 2522cdf0e10cSrcweir aSecondSortUpRB.Show( bToxIsAuthorities ); 2523cdf0e10cSrcweir aSecondSortDownRB.Show( bToxIsAuthorities ); 2524cdf0e10cSrcweir aThirdSortUpRB.Show( bToxIsAuthorities ); 2525cdf0e10cSrcweir aThirdSortDownRB.Show( bToxIsAuthorities ); 2526cdf0e10cSrcweir 2527cdf0e10cSrcweir aRelToStyleCB.SetPosPixel( bToxIsIndex ? aRelToStyleIdxPos 2528cdf0e10cSrcweir : aRelToStylePos ); 2529cdf0e10cSrcweir 2530cdf0e10cSrcweir // aRecalcTabCB.Show( aCurType.eType == TOX_CONTENT); 2531cdf0e10cSrcweir 2532cdf0e10cSrcweir aMainEntryStyleFT.Show( bToxIsIndex ); 2533cdf0e10cSrcweir aMainEntryStyleLB.Show( bToxIsIndex ); 2534cdf0e10cSrcweir aAlphaDelimCB.Show( bToxIsIndex ); 2535cdf0e10cSrcweir aCommaSeparatedCB.Show( bToxIsIndex ); 2536cdf0e10cSrcweir } 2537cdf0e10cSrcweir aLastTOXType = aCurType; 2538cdf0e10cSrcweir 2539cdf0e10cSrcweir //invalidate PatternWindow 2540cdf0e10cSrcweir aTokenWIN.SetInvalid(); 2541cdf0e10cSrcweir LevelHdl(&aLevelLB); 2542cdf0e10cSrcweir } 2543cdf0e10cSrcweir /* -----------------30.11.99 15:04------------------- 2544cdf0e10cSrcweir 2545cdf0e10cSrcweir --------------------------------------------------*/ 2546cdf0e10cSrcweir void SwTOXEntryTabPage::UpdateDescriptor() 2547cdf0e10cSrcweir { 2548cdf0e10cSrcweir WriteBackLevel(); 2549cdf0e10cSrcweir SwMultiTOXTabDialog* pTOXDlg = (SwMultiTOXTabDialog*)GetTabDialog(); 2550cdf0e10cSrcweir SwTOXDescription& rDesc = pTOXDlg->GetTOXDescription(aLastTOXType); 2551cdf0e10cSrcweir if(TOX_INDEX == aLastTOXType.eType) 2552cdf0e10cSrcweir { 2553cdf0e10cSrcweir String sTemp(aMainEntryStyleLB.GetSelectEntry()); 2554cdf0e10cSrcweir rDesc.SetMainEntryCharStyle(sNoCharStyle == sTemp ? aEmptyStr : sTemp); 2555cdf0e10cSrcweir sal_uInt16 nIdxOptions = rDesc.GetIndexOptions() & ~nsSwTOIOptions::TOI_ALPHA_DELIMITTER; 2556cdf0e10cSrcweir if(aAlphaDelimCB.IsChecked()) 2557cdf0e10cSrcweir nIdxOptions |= nsSwTOIOptions::TOI_ALPHA_DELIMITTER; 2558cdf0e10cSrcweir rDesc.SetIndexOptions(nIdxOptions); 2559cdf0e10cSrcweir } 2560cdf0e10cSrcweir else if(TOX_AUTHORITIES == aLastTOXType.eType) 2561cdf0e10cSrcweir { 2562cdf0e10cSrcweir rDesc.SetSortByDocument(aSortDocPosRB.IsChecked()); 2563cdf0e10cSrcweir SwTOXSortKey aKey1, aKey2, aKey3; 2564cdf0e10cSrcweir aKey1.eField = (ToxAuthorityField)(sal_uIntPtr)aFirstKeyLB.GetEntryData( 2565cdf0e10cSrcweir aFirstKeyLB.GetSelectEntryPos()); 2566cdf0e10cSrcweir aKey1.bSortAscending = aFirstSortUpRB.IsChecked(); 2567cdf0e10cSrcweir aKey2.eField = (ToxAuthorityField)(sal_uIntPtr)aSecondKeyLB.GetEntryData( 2568cdf0e10cSrcweir aSecondKeyLB.GetSelectEntryPos()); 2569cdf0e10cSrcweir aKey2.bSortAscending = aSecondSortUpRB.IsChecked(); 2570cdf0e10cSrcweir aKey3.eField = (ToxAuthorityField)(sal_uIntPtr)aThirdKeyLB.GetEntryData( 2571cdf0e10cSrcweir aThirdKeyLB.GetSelectEntryPos()); 2572cdf0e10cSrcweir aKey3.bSortAscending = aThirdSortUpRB.IsChecked(); 2573cdf0e10cSrcweir 2574cdf0e10cSrcweir 2575cdf0e10cSrcweir rDesc.SetSortKeys(aKey1, aKey2, aKey3); 2576cdf0e10cSrcweir } 2577cdf0e10cSrcweir SwForm* pCurrentForm = pTOXDlg->GetForm(aLastTOXType); 2578cdf0e10cSrcweir if(aRelToStyleCB.IsVisible()) 2579cdf0e10cSrcweir { 2580cdf0e10cSrcweir pCurrentForm->SetRelTabPos(aRelToStyleCB.IsChecked()); 2581cdf0e10cSrcweir } 2582cdf0e10cSrcweir if(aCommaSeparatedCB.IsVisible()) 2583cdf0e10cSrcweir pCurrentForm->SetCommaSeparated(aCommaSeparatedCB.IsChecked()); 2584cdf0e10cSrcweir } 2585cdf0e10cSrcweir /*-- 16.06.99 10:47:34--------------------------------------------------- 2586cdf0e10cSrcweir 2587cdf0e10cSrcweir -----------------------------------------------------------------------*/ 2588cdf0e10cSrcweir int SwTOXEntryTabPage::DeactivatePage( SfxItemSet* /*pSet*/) 2589cdf0e10cSrcweir { 2590cdf0e10cSrcweir UpdateDescriptor(); 2591cdf0e10cSrcweir return LEAVE_PAGE; 2592cdf0e10cSrcweir } 2593cdf0e10cSrcweir /*-- 16.06.99 10:47:34--------------------------------------------------- 2594cdf0e10cSrcweir 2595cdf0e10cSrcweir -----------------------------------------------------------------------*/ 2596cdf0e10cSrcweir SfxTabPage* SwTOXEntryTabPage::Create( Window* pParent, const SfxItemSet& rAttrSet) 2597cdf0e10cSrcweir { 2598cdf0e10cSrcweir return new SwTOXEntryTabPage(pParent, rAttrSet); 2599cdf0e10cSrcweir } 2600cdf0e10cSrcweir /*-- 16.06.99 10:47:35--------------------------------------------------- 2601cdf0e10cSrcweir 2602cdf0e10cSrcweir -----------------------------------------------------------------------*/ 2603cdf0e10cSrcweir IMPL_LINK(SwTOXEntryTabPage, EditStyleHdl, PushButton*, pBtn) 2604cdf0e10cSrcweir { 2605cdf0e10cSrcweir if( LISTBOX_ENTRY_NOTFOUND != aCharStyleLB.GetSelectEntryPos()) 2606cdf0e10cSrcweir { 2607cdf0e10cSrcweir SfxStringItem aStyle(SID_STYLE_EDIT, aCharStyleLB.GetSelectEntry()); 2608cdf0e10cSrcweir SfxUInt16Item aFamily(SID_STYLE_FAMILY, SFX_STYLE_FAMILY_CHAR); 2609cdf0e10cSrcweir // TODO: WrtShell? 2610cdf0e10cSrcweir // SwPtrItem aShell(FN_PARAM_WRTSHELL, pWrtShell); 2611cdf0e10cSrcweir Window* pDefDlgParent = Application::GetDefDialogParent(); 2612cdf0e10cSrcweir Application::SetDefDialogParent( pBtn ); 2613cdf0e10cSrcweir ((SwMultiTOXTabDialog*)GetTabDialog())->GetWrtShell(). 2614cdf0e10cSrcweir GetView().GetViewFrame()->GetDispatcher()->Execute( 2615cdf0e10cSrcweir SID_STYLE_EDIT, SFX_CALLMODE_SYNCHRON|SFX_CALLMODE_MODAL, 2616cdf0e10cSrcweir &aStyle, &aFamily/*, &aShell*/, 0L); 2617cdf0e10cSrcweir Application::SetDefDialogParent( pDefDlgParent ); 2618cdf0e10cSrcweir } 2619cdf0e10cSrcweir return 0; 2620cdf0e10cSrcweir } 2621cdf0e10cSrcweir /* -----------------04.10.99 11:34------------------- 2622cdf0e10cSrcweir 2623cdf0e10cSrcweir --------------------------------------------------*/ 2624cdf0e10cSrcweir IMPL_LINK(SwTOXEntryTabPage, RemoveInsertAuthHdl, PushButton*, pButton) 2625cdf0e10cSrcweir { 2626cdf0e10cSrcweir sal_Bool bInsert = pButton == &aAuthInsertPB; 2627cdf0e10cSrcweir if(bInsert) 2628cdf0e10cSrcweir { 2629cdf0e10cSrcweir sal_uInt16 nSelPos = aAuthFieldsLB.GetSelectEntryPos(); 2630cdf0e10cSrcweir String sToInsert(aAuthFieldsLB.GetSelectEntry()); 2631cdf0e10cSrcweir SwFormToken aInsert(TOKEN_AUTHORITY); 2632cdf0e10cSrcweir aInsert.nAuthorityField = (sal_uInt16)(sal_uIntPtr)aAuthFieldsLB.GetEntryData(nSelPos); 2633cdf0e10cSrcweir aTokenWIN.InsertAtSelection(String::CreateFromAscii( 2634cdf0e10cSrcweir SwForm::aFormAuth), aInsert); 2635cdf0e10cSrcweir aAuthFieldsLB.RemoveEntry(sToInsert); 2636cdf0e10cSrcweir aAuthFieldsLB.SelectEntryPos( nSelPos ? nSelPos - 1 : 0); 2637cdf0e10cSrcweir } 2638cdf0e10cSrcweir else 2639cdf0e10cSrcweir { 2640cdf0e10cSrcweir Control* pCtrl = aTokenWIN.GetActiveControl(); 2641cdf0e10cSrcweir DBG_ASSERT(WINDOW_EDIT != pCtrl->GetType(), "Remove should be disabled"); 2642cdf0e10cSrcweir if( WINDOW_EDIT != pCtrl->GetType() ) 2643cdf0e10cSrcweir { 2644cdf0e10cSrcweir //fill it into the ListBox 2645cdf0e10cSrcweir const SwFormToken& rToken = ((SwTOXButton*)pCtrl)->GetFormToken(); 2646cdf0e10cSrcweir PreTokenButtonRemoved(rToken); 2647cdf0e10cSrcweir aTokenWIN.RemoveControl((SwTOXButton*)pCtrl); 2648cdf0e10cSrcweir } 2649cdf0e10cSrcweir } 2650cdf0e10cSrcweir ModifyHdl(0); 2651cdf0e10cSrcweir return 0; 2652cdf0e10cSrcweir } 2653cdf0e10cSrcweir /* -----------------------------17.01.00 13:44-------------------------------- 2654cdf0e10cSrcweir 2655cdf0e10cSrcweir ---------------------------------------------------------------------------*/ 2656cdf0e10cSrcweir void SwTOXEntryTabPage::PreTokenButtonRemoved(const SwFormToken& rToken) 2657cdf0e10cSrcweir { 2658cdf0e10cSrcweir //fill it into the ListBox 2659cdf0e10cSrcweir sal_uInt32 nData = rToken.nAuthorityField; 2660cdf0e10cSrcweir String sTemp(SW_RES(STR_AUTH_FIELD_START + nData)); 2661cdf0e10cSrcweir sal_uInt16 nPos = aAuthFieldsLB.InsertEntry(sTemp); 2662cdf0e10cSrcweir aAuthFieldsLB.SetEntryData(nPos, (void*)(nData)); 2663cdf0e10cSrcweir } 2664*ca62e2c2SSteve Yin //IAccessibility2 Impplementaton 2009----- 2665*ca62e2c2SSteve Yin void SwTOXEntryTabPage::SetFocus2theAllBtn() 2666*ca62e2c2SSteve Yin { 2667*ca62e2c2SSteve Yin aAllLevelsPB.GrabFocus(); 2668*ca62e2c2SSteve Yin } 2669*ca62e2c2SSteve Yin long SwTOXEntryTabPage::Notify( NotifyEvent& rNEvt ) 2670*ca62e2c2SSteve Yin { 2671*ca62e2c2SSteve Yin if ( rNEvt.GetType() == EVENT_KEYINPUT ) 2672*ca62e2c2SSteve Yin { 2673*ca62e2c2SSteve Yin const KeyEvent& rKEvt = *rNEvt.GetKeyEvent(); 2674*ca62e2c2SSteve Yin KeyCode aCode = rKEvt.GetKeyCode(); 2675*ca62e2c2SSteve Yin if ( (aCode.GetCode() == KEY_F4) && aCode.IsShift() && !aCode.IsMod1() && !aCode.IsMod2() ) 2676*ca62e2c2SSteve Yin { 2677*ca62e2c2SSteve Yin if ( aTokenWIN.GetActiveControl() ) 2678*ca62e2c2SSteve Yin { 2679*ca62e2c2SSteve Yin aTokenWIN.GetActiveControl()->GrabFocus(); 2680*ca62e2c2SSteve Yin } 2681*ca62e2c2SSteve Yin } 2682*ca62e2c2SSteve Yin 2683*ca62e2c2SSteve Yin } 2684*ca62e2c2SSteve Yin 2685*ca62e2c2SSteve Yin return SfxTabPage::Notify( rNEvt ); 2686*ca62e2c2SSteve Yin } 2687*ca62e2c2SSteve Yin //-----IAccessibility2 Impplementaton 2009 2688cdf0e10cSrcweir /*-- 16.06.99 10:47:35--------------------------------------------------- 2689cdf0e10cSrcweir 2690cdf0e10cSrcweir This function inizializes the default value in the Token 2691cdf0e10cSrcweir put here the UI dependent initializations 2692cdf0e10cSrcweir -----------------------------------------------------------------------*/ 2693cdf0e10cSrcweir IMPL_LINK(SwTOXEntryTabPage, InsertTokenHdl, PushButton*, pBtn) 2694cdf0e10cSrcweir { 2695cdf0e10cSrcweir String sText; 2696cdf0e10cSrcweir FormTokenType eTokenType = TOKEN_ENTRY_NO; 2697cdf0e10cSrcweir String sCharStyle; 2698cdf0e10cSrcweir sal_uInt16 nChapterFormat = CF_NUMBER; // i89791 2699cdf0e10cSrcweir if(pBtn == &aEntryNoPB) 2700cdf0e10cSrcweir { 2701cdf0e10cSrcweir sText.AssignAscii(SwForm::aFormEntryNum); 2702cdf0e10cSrcweir eTokenType = TOKEN_ENTRY_NO; 2703cdf0e10cSrcweir } 2704cdf0e10cSrcweir else if(pBtn == &aEntryPB) 2705cdf0e10cSrcweir { 2706cdf0e10cSrcweir if( TOX_CONTENT == m_pCurrentForm->GetTOXType() ) 2707cdf0e10cSrcweir { 2708cdf0e10cSrcweir sText.AssignAscii( SwForm::aFormEntryTxt ); 2709cdf0e10cSrcweir eTokenType = TOKEN_ENTRY_TEXT; 2710cdf0e10cSrcweir } 2711cdf0e10cSrcweir else 2712cdf0e10cSrcweir { 2713cdf0e10cSrcweir sText.AssignAscii( SwForm::aFormEntry); 2714cdf0e10cSrcweir eTokenType = TOKEN_ENTRY; 2715cdf0e10cSrcweir } 2716cdf0e10cSrcweir } 2717cdf0e10cSrcweir else if(pBtn == &aChapterInfoPB) 2718cdf0e10cSrcweir { 2719cdf0e10cSrcweir sText.AssignAscii( SwForm::aFormChapterMark); 2720cdf0e10cSrcweir eTokenType = TOKEN_CHAPTER_INFO; 2721cdf0e10cSrcweir nChapterFormat = CF_NUM_NOPREPST_TITLE; // i89791 2722cdf0e10cSrcweir } 2723cdf0e10cSrcweir else if(pBtn == &aPageNoPB) 2724cdf0e10cSrcweir { 2725cdf0e10cSrcweir sText.AssignAscii(SwForm::aFormPageNums); 2726cdf0e10cSrcweir eTokenType = TOKEN_PAGE_NUMS; 2727cdf0e10cSrcweir } 2728cdf0e10cSrcweir else if(pBtn == &aHyperLinkPB) 2729cdf0e10cSrcweir { 2730cdf0e10cSrcweir sText.AssignAscii(SwForm::aFormLinkStt); 2731cdf0e10cSrcweir eTokenType = TOKEN_LINK_START; 2732cdf0e10cSrcweir sCharStyle = String(SW_RES(STR_POOLCHR_INET_NORMAL)); 2733cdf0e10cSrcweir } 2734cdf0e10cSrcweir else if(pBtn == &aTabPB) 2735cdf0e10cSrcweir { 2736cdf0e10cSrcweir sText.AssignAscii(SwForm::aFormTab); 2737cdf0e10cSrcweir eTokenType = TOKEN_TAB_STOP; 2738cdf0e10cSrcweir } 2739cdf0e10cSrcweir SwFormToken aInsert(eTokenType); 2740cdf0e10cSrcweir aInsert.sCharStyleName = sCharStyle; 2741cdf0e10cSrcweir aInsert.nTabStopPosition = 0; 2742cdf0e10cSrcweir aInsert.nChapterFormat = nChapterFormat; // i89791 2743cdf0e10cSrcweir aTokenWIN.InsertAtSelection(sText, aInsert); 2744cdf0e10cSrcweir ModifyHdl(0); 2745cdf0e10cSrcweir return 0; 2746cdf0e10cSrcweir } 2747cdf0e10cSrcweir /* -----------------------------14.01.00 11:53-------------------------------- 2748cdf0e10cSrcweir 2749cdf0e10cSrcweir ---------------------------------------------------------------------------*/ 2750cdf0e10cSrcweir IMPL_LINK(SwTOXEntryTabPage, AllLevelsHdl, PushButton*, EMPTYARG) 2751cdf0e10cSrcweir { 2752cdf0e10cSrcweir //get current level 2753cdf0e10cSrcweir //write it into all levels 2754cdf0e10cSrcweir if(aTokenWIN.IsValid()) 2755cdf0e10cSrcweir { 2756cdf0e10cSrcweir String sNewToken = aTokenWIN.GetPattern(); 2757cdf0e10cSrcweir for(sal_uInt16 i = 1; i < m_pCurrentForm->GetFormMax(); i++) 2758cdf0e10cSrcweir m_pCurrentForm->SetPattern(i, sNewToken); 2759cdf0e10cSrcweir // 2760cdf0e10cSrcweir ModifyHdl(this); 2761cdf0e10cSrcweir } 2762cdf0e10cSrcweir return 0; 2763cdf0e10cSrcweir } 2764cdf0e10cSrcweir 2765cdf0e10cSrcweir /* -----------------02.12.99 12:40------------------- 2766cdf0e10cSrcweir 2767cdf0e10cSrcweir --------------------------------------------------*/ 2768cdf0e10cSrcweir void SwTOXEntryTabPage::WriteBackLevel() 2769cdf0e10cSrcweir { 2770cdf0e10cSrcweir if(aTokenWIN.IsValid()) 2771cdf0e10cSrcweir { 2772cdf0e10cSrcweir String sNewToken = aTokenWIN.GetPattern(); 2773cdf0e10cSrcweir sal_uInt16 nLastLevel = aTokenWIN.GetLastLevel(); 2774cdf0e10cSrcweir if(nLastLevel != USHRT_MAX) 2775cdf0e10cSrcweir m_pCurrentForm->SetPattern(nLastLevel + 1, sNewToken ); 2776cdf0e10cSrcweir } 2777cdf0e10cSrcweir } 2778cdf0e10cSrcweir /*-- 16.06.99 10:47:35--------------------------------------------------- 2779cdf0e10cSrcweir 2780cdf0e10cSrcweir -----------------------------------------------------------------------*/ 2781cdf0e10cSrcweir IMPL_LINK(SwTOXEntryTabPage, LevelHdl, SvTreeListBox*, pBox) 2782cdf0e10cSrcweir { 2783cdf0e10cSrcweir if(bInLevelHdl) 2784cdf0e10cSrcweir return 0; 2785cdf0e10cSrcweir bInLevelHdl = sal_True; 2786cdf0e10cSrcweir WriteBackLevel(); 2787cdf0e10cSrcweir 2788cdf0e10cSrcweir sal_uInt16 nLevel = static_cast< sal_uInt16 >(pBox->GetModel()->GetAbsPos(pBox->FirstSelected())); 2789cdf0e10cSrcweir aTokenWIN.SetForm(*m_pCurrentForm, nLevel); 2790cdf0e10cSrcweir if(TOX_AUTHORITIES == m_pCurrentForm->GetTOXType()) 2791cdf0e10cSrcweir { 2792cdf0e10cSrcweir //fill the types in 2793cdf0e10cSrcweir aAuthFieldsLB.Clear(); 2794cdf0e10cSrcweir for( sal_uInt32 i = 0; i < AUTH_FIELD_END; i++) 2795cdf0e10cSrcweir { 2796cdf0e10cSrcweir String sTmp(SW_RES(STR_AUTH_FIELD_START + i)); 2797cdf0e10cSrcweir sal_uInt16 nPos = aAuthFieldsLB.InsertEntry(sTmp); 2798cdf0e10cSrcweir aAuthFieldsLB.SetEntryData(nPos, (void*)(i)); 2799cdf0e10cSrcweir } 2800cdf0e10cSrcweir 2801cdf0e10cSrcweir // #i21237# 2802cdf0e10cSrcweir SwFormTokens aPattern = m_pCurrentForm->GetPattern(nLevel + 1); 2803cdf0e10cSrcweir SwFormTokens::iterator aIt = aPattern.begin();; 2804cdf0e10cSrcweir 2805cdf0e10cSrcweir while(aIt != aPattern.end()) 2806cdf0e10cSrcweir { 2807cdf0e10cSrcweir SwFormToken aToken = *aIt; // #i21237# 2808cdf0e10cSrcweir if(TOKEN_AUTHORITY == aToken.eTokenType) 2809cdf0e10cSrcweir { 2810cdf0e10cSrcweir sal_uInt32 nSearch = aToken.nAuthorityField; 2811cdf0e10cSrcweir sal_uInt16 nLstBoxPos = aAuthFieldsLB.GetEntryPos( (void*) nSearch ); 2812cdf0e10cSrcweir DBG_ASSERT(LISTBOX_ENTRY_NOTFOUND != nLstBoxPos, "Entry not found?"); 2813cdf0e10cSrcweir aAuthFieldsLB.RemoveEntry(nLstBoxPos); 2814cdf0e10cSrcweir } 2815cdf0e10cSrcweir 2816cdf0e10cSrcweir aIt++; // #i21237# 2817cdf0e10cSrcweir } 2818cdf0e10cSrcweir aAuthFieldsLB.SelectEntryPos(0); 2819cdf0e10cSrcweir } 2820cdf0e10cSrcweir bInLevelHdl = sal_False; 2821cdf0e10cSrcweir pBox->GrabFocus(); 2822cdf0e10cSrcweir return 0; 2823cdf0e10cSrcweir } 2824cdf0e10cSrcweir /* -----------------20.10.99 13:16------------------- 2825cdf0e10cSrcweir 2826cdf0e10cSrcweir --------------------------------------------------*/ 2827cdf0e10cSrcweir IMPL_LINK(SwTOXEntryTabPage, SortKeyHdl, RadioButton*, pButton) 2828cdf0e10cSrcweir { 2829cdf0e10cSrcweir sal_Bool bEnable = &aSortContentRB == pButton; 2830cdf0e10cSrcweir aFirstKeyFT.Enable(bEnable); 2831cdf0e10cSrcweir aFirstKeyLB.Enable(bEnable); 2832cdf0e10cSrcweir aSecondKeyFT.Enable(bEnable); 2833cdf0e10cSrcweir aSecondKeyLB.Enable(bEnable); 2834cdf0e10cSrcweir aThirdKeyFT.Enable(bEnable); 2835cdf0e10cSrcweir aThirdKeyLB.Enable(bEnable); 2836cdf0e10cSrcweir aSortKeyFL.Enable(bEnable); 2837cdf0e10cSrcweir aFirstSortUpRB.Enable(bEnable); 2838cdf0e10cSrcweir aFirstSortDownRB.Enable(bEnable); 2839cdf0e10cSrcweir aSecondSortUpRB.Enable(bEnable); 2840cdf0e10cSrcweir aSecondSortDownRB.Enable(bEnable); 2841cdf0e10cSrcweir aThirdSortUpRB.Enable(bEnable); 2842cdf0e10cSrcweir aThirdSortDownRB.Enable(bEnable); 2843cdf0e10cSrcweir return 0; 2844cdf0e10cSrcweir } 2845cdf0e10cSrcweir /* -----------------01.07.99 12:21------------------- 2846cdf0e10cSrcweir 2847cdf0e10cSrcweir --------------------------------------------------*/ 2848cdf0e10cSrcweir IMPL_LINK(SwTOXEntryTabPage, TokenSelectedHdl, SwFormToken*, pToken) 2849cdf0e10cSrcweir { 2850cdf0e10cSrcweir if(pToken->sCharStyleName.Len()) 2851cdf0e10cSrcweir aCharStyleLB.SelectEntry(pToken->sCharStyleName); 2852cdf0e10cSrcweir else 2853cdf0e10cSrcweir aCharStyleLB.SelectEntry(sNoCharStyle); 2854cdf0e10cSrcweir //StyleSelectHdl(&aCharStyleLB); 2855cdf0e10cSrcweir 2856cdf0e10cSrcweir String sEntry = aCharStyleLB.GetSelectEntry(); 2857cdf0e10cSrcweir aEditStylePB.Enable(sEntry != sNoCharStyle); 2858cdf0e10cSrcweir 2859cdf0e10cSrcweir if(pToken->eTokenType == TOKEN_CHAPTER_INFO) 2860cdf0e10cSrcweir { 2861cdf0e10cSrcweir //---> i89791 2862cdf0e10cSrcweir switch(pToken->nChapterFormat) 2863cdf0e10cSrcweir { 2864cdf0e10cSrcweir default: 2865cdf0e10cSrcweir aChapterEntryLB.SetNoSelection();//to alert the user 2866cdf0e10cSrcweir break; 2867cdf0e10cSrcweir case CF_NUM_NOPREPST_TITLE: 2868cdf0e10cSrcweir aChapterEntryLB.SelectEntryPos(0); 2869cdf0e10cSrcweir break; 2870cdf0e10cSrcweir case CF_TITLE: 2871cdf0e10cSrcweir aChapterEntryLB.SelectEntryPos(1); 2872cdf0e10cSrcweir break; 2873cdf0e10cSrcweir case CF_NUMBER_NOPREPST: 2874cdf0e10cSrcweir aChapterEntryLB.SelectEntryPos(2); 2875cdf0e10cSrcweir break; 2876cdf0e10cSrcweir } 2877cdf0e10cSrcweir //<--- 2878cdf0e10cSrcweir //i53420 2879cdf0e10cSrcweir //move into position the fixed text 2880cdf0e10cSrcweir // aEntryOutlineLevelFT.SetPosPixel( aEntryOutlineLevelFTPosition ); 2881cdf0e10cSrcweir // // then the entry 2882cdf0e10cSrcweir // Point aPoint; 2883cdf0e10cSrcweir // aPoint.Y() = aEntryOutlineLevelFTPosition.Y(); 2884cdf0e10cSrcweir // aPoint.X() = aEntryOutlineLevelFTPosition.X() + nBiasToEntryPoint; 2885cdf0e10cSrcweir // aEntryOutlineLevelNF.SetPosPixel( aPoint ); 2886cdf0e10cSrcweir 2887cdf0e10cSrcweir aEntryOutlineLevelNF.SetValue(pToken->nOutlineLevel); 2888cdf0e10cSrcweir } 2889cdf0e10cSrcweir 2890cdf0e10cSrcweir //i53420 2891cdf0e10cSrcweir if(pToken->eTokenType == TOKEN_ENTRY_NO) 2892cdf0e10cSrcweir { 2893cdf0e10cSrcweir //move into position the fixed text 2894cdf0e10cSrcweir // aEntryOutlineLevelFT.SetPosPixel( aChapterEntryFTPosition ); 2895cdf0e10cSrcweir // // then the entry 2896cdf0e10cSrcweir // Point aPoint; 2897cdf0e10cSrcweir // aPoint.Y() = aChapterEntryFTPosition.Y(); 2898cdf0e10cSrcweir // aPoint.X() = aChapterEntryFTPosition.X() + nBiasToEntryPoint; 2899cdf0e10cSrcweir // aEntryOutlineLevelNF.SetPosPixel( aPoint ); 2900cdf0e10cSrcweir 2901cdf0e10cSrcweir aEntryOutlineLevelNF.SetValue(pToken->nOutlineLevel); 2902cdf0e10cSrcweir sal_uInt16 nFormat = 0; 2903cdf0e10cSrcweir if( pToken->nChapterFormat == CF_NUM_NOPREPST_TITLE ) 2904cdf0e10cSrcweir nFormat = 1; 2905cdf0e10cSrcweir aNumberFormatLB.SelectEntryPos(nFormat); 2906cdf0e10cSrcweir } 2907cdf0e10cSrcweir 2908cdf0e10cSrcweir sal_Bool bTabStop = TOKEN_TAB_STOP == pToken->eTokenType; 2909cdf0e10cSrcweir aFillCharFT.Show(bTabStop); 2910cdf0e10cSrcweir aFillCharCB.Show(bTabStop); 2911cdf0e10cSrcweir aTabPosFT.Show(bTabStop); 2912cdf0e10cSrcweir aTabPosMF.Show(bTabStop); 2913cdf0e10cSrcweir aAutoRightCB.Show(bTabStop); 2914cdf0e10cSrcweir aAutoRightCB.Enable(bTabStop); 2915cdf0e10cSrcweir if(bTabStop) 2916cdf0e10cSrcweir { 2917cdf0e10cSrcweir aTabPosMF.SetValue(aTabPosMF.Normalize(pToken->nTabStopPosition), FUNIT_TWIP); 2918cdf0e10cSrcweir aAutoRightCB.Check(SVX_TAB_ADJUST_END == pToken->eTabAlign); 2919cdf0e10cSrcweir aFillCharCB.SetText(pToken->cTabFillChar); 2920cdf0e10cSrcweir aTabPosFT.Enable(!aAutoRightCB.IsChecked()); 2921cdf0e10cSrcweir aTabPosMF.Enable(!aAutoRightCB.IsChecked()); 2922cdf0e10cSrcweir } 2923cdf0e10cSrcweir else 2924cdf0e10cSrcweir { 2925cdf0e10cSrcweir aTabPosMF.Enable(sal_False); 2926cdf0e10cSrcweir } 2927cdf0e10cSrcweir 2928cdf0e10cSrcweir sal_Bool bIsChapterInfo = pToken->eTokenType == TOKEN_CHAPTER_INFO; 2929cdf0e10cSrcweir sal_Bool bIsEntryNumber = pToken->eTokenType == TOKEN_ENTRY_NO; 2930cdf0e10cSrcweir aChapterEntryFT.Show( bIsChapterInfo ); 2931cdf0e10cSrcweir aChapterEntryLB.Show( bIsChapterInfo ); 2932cdf0e10cSrcweir aEntryOutlineLevelFT.Show( bIsChapterInfo || bIsEntryNumber ); 2933cdf0e10cSrcweir aEntryOutlineLevelNF.Show( bIsChapterInfo || bIsEntryNumber ); 2934cdf0e10cSrcweir aNumberFormatFT.Show( bIsEntryNumber ); 2935cdf0e10cSrcweir aNumberFormatLB.Show( bIsEntryNumber ); 2936cdf0e10cSrcweir 2937cdf0e10cSrcweir 2938cdf0e10cSrcweir //now enable the visible buttons 2939cdf0e10cSrcweir //- inserting the same type of control is not allowed 2940cdf0e10cSrcweir //- some types of controls can only appear once (EntryText EntryNumber) 2941cdf0e10cSrcweir 2942cdf0e10cSrcweir if(aEntryNoPB.IsVisible()) 2943cdf0e10cSrcweir { 2944cdf0e10cSrcweir aEntryNoPB.Enable(TOKEN_ENTRY_NO != pToken->eTokenType ); 2945cdf0e10cSrcweir } 2946cdf0e10cSrcweir if(aEntryPB.IsVisible()) 2947cdf0e10cSrcweir { 2948cdf0e10cSrcweir aEntryPB.Enable(TOKEN_ENTRY_TEXT != pToken->eTokenType && 2949cdf0e10cSrcweir !aTokenWIN.Contains(TOKEN_ENTRY_TEXT) 2950cdf0e10cSrcweir && !aTokenWIN.Contains(TOKEN_ENTRY)); 2951cdf0e10cSrcweir } 2952cdf0e10cSrcweir 2953cdf0e10cSrcweir if(aChapterInfoPB.IsVisible()) 2954cdf0e10cSrcweir { 2955cdf0e10cSrcweir aChapterInfoPB.Enable(TOKEN_CHAPTER_INFO != pToken->eTokenType); 2956cdf0e10cSrcweir } 2957cdf0e10cSrcweir if(aPageNoPB.IsVisible()) 2958cdf0e10cSrcweir { 2959cdf0e10cSrcweir aPageNoPB.Enable(TOKEN_PAGE_NUMS != pToken->eTokenType && 2960cdf0e10cSrcweir !aTokenWIN.Contains(TOKEN_PAGE_NUMS)); 2961cdf0e10cSrcweir } 2962cdf0e10cSrcweir if(aTabPB.IsVisible()) 2963cdf0e10cSrcweir { 2964cdf0e10cSrcweir aTabPB.Enable(!bTabStop); 2965cdf0e10cSrcweir } 2966cdf0e10cSrcweir if(aHyperLinkPB.IsVisible()) 2967cdf0e10cSrcweir { 2968cdf0e10cSrcweir aHyperLinkPB.Enable(TOKEN_LINK_START != pToken->eTokenType && 2969cdf0e10cSrcweir TOKEN_LINK_END != pToken->eTokenType); 2970cdf0e10cSrcweir } 2971cdf0e10cSrcweir //table of authorities 2972cdf0e10cSrcweir if(aAuthInsertPB.IsVisible()) 2973cdf0e10cSrcweir { 2974cdf0e10cSrcweir sal_Bool bText = TOKEN_TEXT == pToken->eTokenType; 2975cdf0e10cSrcweir aAuthInsertPB.Enable(bText && aAuthFieldsLB.GetSelectEntry().Len()); 2976cdf0e10cSrcweir aAuthRemovePB.Enable(!bText); 2977cdf0e10cSrcweir } 2978cdf0e10cSrcweir 2979cdf0e10cSrcweir return 0; 2980cdf0e10cSrcweir } 2981cdf0e10cSrcweir /* -----------------01.07.99 12:36------------------- 2982cdf0e10cSrcweir 2983cdf0e10cSrcweir --------------------------------------------------*/ 2984cdf0e10cSrcweir IMPL_LINK(SwTOXEntryTabPage, StyleSelectHdl, ListBox*, pBox) 2985cdf0e10cSrcweir { 2986cdf0e10cSrcweir String sEntry = pBox->GetSelectEntry(); 2987cdf0e10cSrcweir sal_uInt16 nId = (sal_uInt16)(long)pBox->GetEntryData(pBox->GetSelectEntryPos()); 2988cdf0e10cSrcweir aEditStylePB.Enable(sEntry != sNoCharStyle); 2989cdf0e10cSrcweir if(sEntry == sNoCharStyle) 2990cdf0e10cSrcweir sEntry.Erase(); 2991cdf0e10cSrcweir Control* pCtrl = aTokenWIN.GetActiveControl(); 2992cdf0e10cSrcweir DBG_ASSERT(pCtrl, "no active control?"); 2993cdf0e10cSrcweir if(pCtrl) 2994cdf0e10cSrcweir { 2995cdf0e10cSrcweir if(WINDOW_EDIT == pCtrl->GetType()) 2996cdf0e10cSrcweir ((SwTOXEdit*)pCtrl)->SetCharStyleName(sEntry, nId); 2997cdf0e10cSrcweir else 2998cdf0e10cSrcweir ((SwTOXButton*)pCtrl)->SetCharStyleName(sEntry, nId); 2999cdf0e10cSrcweir 3000cdf0e10cSrcweir } 3001cdf0e10cSrcweir ModifyHdl(0); 3002cdf0e10cSrcweir return 0; 3003cdf0e10cSrcweir } 3004cdf0e10cSrcweir /* -----------------------------11.01.00 12:54-------------------------------- 3005cdf0e10cSrcweir 3006cdf0e10cSrcweir ---------------------------------------------------------------------------*/ 3007cdf0e10cSrcweir IMPL_LINK(SwTOXEntryTabPage, ChapterInfoHdl, ListBox*, pBox) 3008cdf0e10cSrcweir { 3009cdf0e10cSrcweir sal_uInt16 nPos = pBox->GetSelectEntryPos(); 3010cdf0e10cSrcweir if(LISTBOX_ENTRY_NOTFOUND != nPos) 3011cdf0e10cSrcweir { 3012cdf0e10cSrcweir Control* pCtrl = aTokenWIN.GetActiveControl(); 3013cdf0e10cSrcweir DBG_ASSERT(pCtrl, "no active control?"); 3014cdf0e10cSrcweir if(pCtrl && WINDOW_EDIT != pCtrl->GetType()) 3015cdf0e10cSrcweir ((SwTOXButton*)pCtrl)->SetChapterInfo(nPos); 3016cdf0e10cSrcweir 3017cdf0e10cSrcweir ModifyHdl(0); 3018cdf0e10cSrcweir } 3019cdf0e10cSrcweir return 0; 3020cdf0e10cSrcweir } 3021cdf0e10cSrcweir 3022cdf0e10cSrcweir IMPL_LINK(SwTOXEntryTabPage, ChapterInfoOutlineHdl, NumericField*, pField) 3023cdf0e10cSrcweir { 3024cdf0e10cSrcweir const sal_uInt16 nLevel = static_cast<sal_uInt8>(pField->GetValue()); 3025cdf0e10cSrcweir 3026cdf0e10cSrcweir Control* pCtrl = aTokenWIN.GetActiveControl(); 3027cdf0e10cSrcweir DBG_ASSERT(pCtrl, "no active control?"); 3028cdf0e10cSrcweir if(pCtrl && WINDOW_EDIT != pCtrl->GetType()) 3029cdf0e10cSrcweir ((SwTOXButton*)pCtrl)->SetOutlineLevel(nLevel); 3030cdf0e10cSrcweir 3031cdf0e10cSrcweir ModifyHdl(0); 3032cdf0e10cSrcweir return 0; 3033cdf0e10cSrcweir } 3034cdf0e10cSrcweir 3035cdf0e10cSrcweir IMPL_LINK(SwTOXEntryTabPage, NumberFormatHdl, ListBox*, pBox) 3036cdf0e10cSrcweir { 3037cdf0e10cSrcweir const sal_uInt16 nPos = pBox->GetSelectEntryPos(); 3038cdf0e10cSrcweir 3039cdf0e10cSrcweir if(LISTBOX_ENTRY_NOTFOUND != nPos) 3040cdf0e10cSrcweir { 3041cdf0e10cSrcweir Control* pCtrl = aTokenWIN.GetActiveControl(); 3042cdf0e10cSrcweir DBG_ASSERT(pCtrl, "no active control?"); 3043cdf0e10cSrcweir if(pCtrl && WINDOW_EDIT != pCtrl->GetType()) 3044cdf0e10cSrcweir { 3045cdf0e10cSrcweir ((SwTOXButton*)pCtrl)->SetEntryNumberFormat(nPos);//i89791 3046cdf0e10cSrcweir } 3047cdf0e10cSrcweir ModifyHdl(0); 3048cdf0e10cSrcweir } 3049cdf0e10cSrcweir return 0; 3050cdf0e10cSrcweir } 3051cdf0e10cSrcweir 3052cdf0e10cSrcweir /* -----------------19.08.99 15:37------------------- 3053cdf0e10cSrcweir 3054cdf0e10cSrcweir --------------------------------------------------*/ 3055cdf0e10cSrcweir IMPL_LINK(SwTOXEntryTabPage, TabPosHdl, MetricField*, pField) 3056cdf0e10cSrcweir { 3057cdf0e10cSrcweir Control* pCtrl = aTokenWIN.GetActiveControl(); 3058cdf0e10cSrcweir DBG_ASSERT(pCtrl && WINDOW_EDIT != pCtrl->GetType() && 3059cdf0e10cSrcweir TOKEN_TAB_STOP == ((SwTOXButton*)pCtrl)->GetFormToken().eTokenType, 3060cdf0e10cSrcweir "no active style::TabStop control?"); 3061cdf0e10cSrcweir if( pCtrl && WINDOW_EDIT != pCtrl->GetType() ) 3062cdf0e10cSrcweir { 3063cdf0e10cSrcweir ((SwTOXButton*)pCtrl)->SetTabPosition( static_cast< SwTwips >( 3064cdf0e10cSrcweir pField->Denormalize( pField->GetValue( FUNIT_TWIP )))); 3065cdf0e10cSrcweir } 3066cdf0e10cSrcweir ModifyHdl(0); 3067cdf0e10cSrcweir return 0; 3068cdf0e10cSrcweir } 3069cdf0e10cSrcweir /* -----------------09.09.99 15:37------------------- 3070cdf0e10cSrcweir 3071cdf0e10cSrcweir --------------------------------------------------*/ 3072cdf0e10cSrcweir IMPL_LINK(SwTOXEntryTabPage, FillCharHdl, ComboBox*, pBox) 3073cdf0e10cSrcweir { 3074cdf0e10cSrcweir Control* pCtrl = aTokenWIN.GetActiveControl(); 3075cdf0e10cSrcweir DBG_ASSERT(pCtrl && WINDOW_EDIT != pCtrl->GetType() && 3076cdf0e10cSrcweir TOKEN_TAB_STOP == ((SwTOXButton*)pCtrl)->GetFormToken().eTokenType, 3077cdf0e10cSrcweir "no active style::TabStop control?"); 3078cdf0e10cSrcweir if(pCtrl && WINDOW_EDIT != pCtrl->GetType()) 3079cdf0e10cSrcweir { 3080cdf0e10cSrcweir sal_Unicode cSet; 3081cdf0e10cSrcweir if( pBox->GetText().Len() ) 3082cdf0e10cSrcweir cSet = pBox->GetText().GetChar(0); 3083cdf0e10cSrcweir else 3084cdf0e10cSrcweir cSet = ' '; 3085cdf0e10cSrcweir ((SwTOXButton*)pCtrl)->SetFillChar( cSet ); 3086cdf0e10cSrcweir } 3087cdf0e10cSrcweir ModifyHdl(0); 3088cdf0e10cSrcweir return 0; 3089cdf0e10cSrcweir } 3090cdf0e10cSrcweir 3091cdf0e10cSrcweir /*-- 16.06.99 10:47:36--------------------------------------------------- 3092cdf0e10cSrcweir 3093cdf0e10cSrcweir -----------------------------------------------------------------------*/ 3094cdf0e10cSrcweir IMPL_LINK(SwTOXEntryTabPage, AutoRightHdl, CheckBox*, pBox) 3095cdf0e10cSrcweir { 3096cdf0e10cSrcweir //the most right style::TabStop is usually right aligned 3097cdf0e10cSrcweir Control* pCurCtrl = aTokenWIN.GetActiveControl(); 3098cdf0e10cSrcweir DBG_ASSERT(WINDOW_EDIT != pCurCtrl->GetType() && 3099cdf0e10cSrcweir ((SwTOXButton*)pCurCtrl)->GetFormToken().eTokenType == TOKEN_TAB_STOP, 3100cdf0e10cSrcweir "no style::TabStop selected!"); 3101cdf0e10cSrcweir 3102cdf0e10cSrcweir const SwFormToken& rToken = ((SwTOXButton*)pCurCtrl)->GetFormToken(); 3103cdf0e10cSrcweir sal_Bool bChecked = pBox->IsChecked(); 3104cdf0e10cSrcweir if(rToken.eTokenType == TOKEN_TAB_STOP) 3105cdf0e10cSrcweir ((SwTOXButton*)pCurCtrl)->SetTabAlign( 3106cdf0e10cSrcweir bChecked ? SVX_TAB_ADJUST_END : SVX_TAB_ADJUST_LEFT); 3107cdf0e10cSrcweir aTabPosFT.Enable(!bChecked); 3108cdf0e10cSrcweir aTabPosMF.Enable(!bChecked); 3109cdf0e10cSrcweir ModifyHdl(0); 3110cdf0e10cSrcweir return 0; 3111cdf0e10cSrcweir } 3112cdf0e10cSrcweir /* -----------------16.06.99 11:00------------------- 3113cdf0e10cSrcweir 3114cdf0e10cSrcweir --------------------------------------------------*/ 3115cdf0e10cSrcweir void SwTOXEntryTabPage::SetWrtShell(SwWrtShell& rSh) 3116cdf0e10cSrcweir { 3117cdf0e10cSrcweir SwDocShell* pDocSh = rSh.GetView().GetDocShell(); 3118cdf0e10cSrcweir ::FillCharStyleListBox(aCharStyleLB, pDocSh, sal_True, sal_True); 3119cdf0e10cSrcweir const String sDefault(SW_RES(STR_POOLCOLL_STANDARD)); 3120cdf0e10cSrcweir for(sal_uInt16 i = 0; i < aCharStyleLB.GetEntryCount(); i++) 3121cdf0e10cSrcweir { 3122cdf0e10cSrcweir String sEntry = aCharStyleLB.GetEntry(i); 3123cdf0e10cSrcweir if(sDefault != sEntry) 3124cdf0e10cSrcweir { 3125cdf0e10cSrcweir aMainEntryStyleLB.InsertEntry( sEntry ); 3126cdf0e10cSrcweir aMainEntryStyleLB.SetEntryData(i, aCharStyleLB.GetEntryData(i)); 3127cdf0e10cSrcweir } 3128cdf0e10cSrcweir } 3129cdf0e10cSrcweir aMainEntryStyleLB.SelectEntry( SwStyleNameMapper::GetUIName( 3130cdf0e10cSrcweir RES_POOLCHR_IDX_MAIN_ENTRY, aEmptyStr )); 3131cdf0e10cSrcweir } 3132cdf0e10cSrcweir /* -----------------------------23.12.99 14:23-------------------------------- 3133cdf0e10cSrcweir 3134cdf0e10cSrcweir ---------------------------------------------------------------------------*/ 3135cdf0e10cSrcweir String SwTOXEntryTabPage::GetLevelHelp(sal_uInt16 nLevel) const 3136cdf0e10cSrcweir { 3137cdf0e10cSrcweir String sRet; 3138cdf0e10cSrcweir SwMultiTOXTabDialog* pTOXDlg = (SwMultiTOXTabDialog*)GetTabDialog(); 3139cdf0e10cSrcweir const CurTOXType aCurType = pTOXDlg->GetCurrentTOXType(); 3140cdf0e10cSrcweir if( TOX_INDEX == aCurType.eType ) 3141cdf0e10cSrcweir SwStyleNameMapper::FillUIName( static_cast< sal_uInt16 >(1 == nLevel ? RES_POOLCOLL_TOX_IDXBREAK 3142cdf0e10cSrcweir : RES_POOLCOLL_TOX_IDX1 + nLevel-2), sRet ); 3143cdf0e10cSrcweir 3144cdf0e10cSrcweir else if( TOX_AUTHORITIES == aCurType.eType ) 3145cdf0e10cSrcweir { 3146cdf0e10cSrcweir //wildcard -> show entry text 3147cdf0e10cSrcweir sRet = '*'; 3148cdf0e10cSrcweir } 3149cdf0e10cSrcweir return sRet; 3150cdf0e10cSrcweir } 3151cdf0e10cSrcweir /* -----------------16.06.99 15:18------------------- 3152cdf0e10cSrcweir 3153cdf0e10cSrcweir --------------------------------------------------*/ 3154cdf0e10cSrcweir 3155cdf0e10cSrcweir SwTokenWindow::SwTokenWindow(SwTOXEntryTabPage* pParent, const ResId& rResId) : 3156cdf0e10cSrcweir Window( pParent, rResId ), 3157cdf0e10cSrcweir aLeftScrollWin(this, ResId(WIN_LEFT_SCROLL, *rResId.GetResMgr() )), 3158cdf0e10cSrcweir aCtrlParentWin(this, ResId(WIN_CTRL_PARENT, *rResId.GetResMgr() )), 3159cdf0e10cSrcweir aRightScrollWin(this, ResId(WIN_RIGHT_SCROLL, *rResId.GetResMgr() )), 3160cdf0e10cSrcweir pForm(0), 3161cdf0e10cSrcweir nLevel(0), 3162cdf0e10cSrcweir bValid(sal_False), 3163cdf0e10cSrcweir sCharStyle(ResId(STR_CHARSTYLE, *rResId.GetResMgr())), 3164cdf0e10cSrcweir pActiveCtrl(0), 3165cdf0e10cSrcweir m_pParent(pParent) 3166cdf0e10cSrcweir { 3167cdf0e10cSrcweir SetStyle(GetStyle()|WB_TABSTOP|WB_DIALOGCONTROL); 3168cdf0e10cSrcweir SetHelpId(HID_TOKEN_WINDOW); 3169cdf0e10cSrcweir for(sal_uInt16 i = 0; i < TOKEN_END; i++) 3170cdf0e10cSrcweir { 3171cdf0e10cSrcweir sal_uInt16 nTextId = STR_BUTTON_TEXT_START + i; 3172cdf0e10cSrcweir if( STR_TOKEN_ENTRY_TEXT == nTextId ) 3173cdf0e10cSrcweir nTextId = STR_TOKEN_ENTRY; 3174cdf0e10cSrcweir aButtonTexts[i] = String(ResId(nTextId, *rResId.GetResMgr())); 3175cdf0e10cSrcweir 3176cdf0e10cSrcweir sal_uInt16 nHelpId = STR_BUTTON_HELP_TEXT_START + i; 3177cdf0e10cSrcweir if(STR_TOKEN_HELP_ENTRY_TEXT == nHelpId) 3178cdf0e10cSrcweir nHelpId = STR_TOKEN_HELP_ENTRY; 3179cdf0e10cSrcweir aButtonHelpTexts[i] = String(ResId(nHelpId, *rResId.GetResMgr())); 3180cdf0e10cSrcweir } 3181*ca62e2c2SSteve Yin //IAccessibility2 Impplementaton 2009----- 3182*ca62e2c2SSteve Yin accessibleName = String(SW_RES(STR_STRUCTURE)); 3183*ca62e2c2SSteve Yin sAdditionalAccnameString1 = String(SW_RES(STR_ADDITIONAL_ACCNAME_STRING1)); 3184*ca62e2c2SSteve Yin sAdditionalAccnameString2 = String(SW_RES(STR_ADDITIONAL_ACCNAME_STRING2)); 3185*ca62e2c2SSteve Yin sAdditionalAccnameString3 = String(SW_RES(STR_ADDITIONAL_ACCNAME_STRING3)); 3186*ca62e2c2SSteve Yin //-----IAccessibility2 Impplementaton 2009 3187cdf0e10cSrcweir FreeResource(); 3188cdf0e10cSrcweir 3189cdf0e10cSrcweir Link aLink(LINK(this, SwTokenWindow, ScrollHdl)); 3190cdf0e10cSrcweir aLeftScrollWin.SetClickHdl(aLink); 3191cdf0e10cSrcweir aRightScrollWin.SetClickHdl(aLink); 3192cdf0e10cSrcweir } 3193cdf0e10cSrcweir /* -----------------01.07.99 12:17------------------- 3194cdf0e10cSrcweir 3195cdf0e10cSrcweir --------------------------------------------------*/ 3196cdf0e10cSrcweir SwTokenWindow::~SwTokenWindow() 3197cdf0e10cSrcweir { 3198cdf0e10cSrcweir // for(sal_uInt16 i = GetItemCount(); i ; i--) 3199cdf0e10cSrcweir // RemoveItem(i - 1); 3200cdf0e10cSrcweir 3201cdf0e10cSrcweir for( sal_uInt32 n = 0; n < aControlList.Count(); ++n ) 3202cdf0e10cSrcweir { 3203cdf0e10cSrcweir Control* pControl = aControlList.GetObject( n ); 3204cdf0e10cSrcweir pControl->SetGetFocusHdl( Link() ); 3205cdf0e10cSrcweir pControl->SetLoseFocusHdl( Link() ); 3206cdf0e10cSrcweir } 3207cdf0e10cSrcweir 3208cdf0e10cSrcweir for( sal_uLong i = aControlList.Count(); i; ) 3209cdf0e10cSrcweir { 3210cdf0e10cSrcweir Control* pControl = aControlList.Remove( --i ); 3211cdf0e10cSrcweir delete pControl; 3212cdf0e10cSrcweir } 3213cdf0e10cSrcweir } 3214cdf0e10cSrcweir /* -----------------16.06.99 13:56------------------- 3215cdf0e10cSrcweir 3216cdf0e10cSrcweir --------------------------------------------------*/ 3217cdf0e10cSrcweir void SwTokenWindow::SetForm(SwForm& rForm, sal_uInt16 nL) 3218cdf0e10cSrcweir { 3219cdf0e10cSrcweir SetActiveControl(0); 3220cdf0e10cSrcweir bValid = sal_True; 3221cdf0e10cSrcweir if(pForm) 3222cdf0e10cSrcweir { 3223cdf0e10cSrcweir //apply current level settings to the form 3224cdf0e10cSrcweir for( sal_uLong i = aControlList.Count(); i; ) 3225cdf0e10cSrcweir { 3226cdf0e10cSrcweir Control* pControl = aControlList.Remove( --i ); 3227cdf0e10cSrcweir delete pControl; 3228cdf0e10cSrcweir } 3229cdf0e10cSrcweir } 3230cdf0e10cSrcweir nLevel = nL; 3231cdf0e10cSrcweir pForm = &rForm; 3232cdf0e10cSrcweir //now the display 3233cdf0e10cSrcweir if(nLevel < MAXLEVEL || rForm.GetTOXType() == TOX_AUTHORITIES) 3234cdf0e10cSrcweir { 3235cdf0e10cSrcweir Size aToolBoxSize = GetSizePixel(); 3236cdf0e10cSrcweir 3237cdf0e10cSrcweir // #i21237# 3238cdf0e10cSrcweir SwFormTokens aPattern = pForm->GetPattern(nLevel + 1); 3239cdf0e10cSrcweir SwFormTokens::iterator aIt = aPattern.begin(); 3240cdf0e10cSrcweir sal_Bool bLastWasText = sal_False; //assure alternating text - code - text 3241cdf0e10cSrcweir 3242cdf0e10cSrcweir Control* pSetActiveControl = 0; 3243cdf0e10cSrcweir while(aIt != aPattern.end()) // #i21237# 3244cdf0e10cSrcweir { 3245cdf0e10cSrcweir SwFormToken aToken(*aIt); // #i21237# 3246cdf0e10cSrcweir 3247cdf0e10cSrcweir if(TOKEN_TEXT == aToken.eTokenType) 3248cdf0e10cSrcweir { 3249cdf0e10cSrcweir DBG_ASSERT(!bLastWasText, "text following text is invalid"); 3250cdf0e10cSrcweir Control* pCtrl = InsertItem(aToken.sText, aToken); 3251cdf0e10cSrcweir bLastWasText = sal_True; 3252cdf0e10cSrcweir if(!GetActiveControl()) 3253cdf0e10cSrcweir SetActiveControl(pCtrl); 3254cdf0e10cSrcweir } 3255cdf0e10cSrcweir else 3256cdf0e10cSrcweir { 3257cdf0e10cSrcweir if( !bLastWasText ) 3258cdf0e10cSrcweir { 3259cdf0e10cSrcweir bLastWasText = sal_True; 3260cdf0e10cSrcweir SwFormToken aTemp(TOKEN_TEXT); 3261cdf0e10cSrcweir Control* pCtrl = InsertItem(aEmptyStr, aTemp); 3262cdf0e10cSrcweir if(!pSetActiveControl) 3263cdf0e10cSrcweir pSetActiveControl = pCtrl; 3264cdf0e10cSrcweir } 3265cdf0e10cSrcweir const sal_Char* pTmp = 0; 3266cdf0e10cSrcweir switch( aToken.eTokenType ) 3267cdf0e10cSrcweir { 3268cdf0e10cSrcweir case TOKEN_ENTRY_NO: pTmp = SwForm::aFormEntryNum; break; 3269cdf0e10cSrcweir case TOKEN_ENTRY_TEXT: pTmp = SwForm::aFormEntryTxt; break; 3270cdf0e10cSrcweir case TOKEN_ENTRY: pTmp = SwForm::aFormEntry; break; 3271cdf0e10cSrcweir case TOKEN_TAB_STOP: pTmp = SwForm::aFormTab; break; 3272cdf0e10cSrcweir case TOKEN_PAGE_NUMS: pTmp = SwForm::aFormPageNums; break; 3273cdf0e10cSrcweir case TOKEN_CHAPTER_INFO:pTmp = SwForm::aFormChapterMark; break; 3274cdf0e10cSrcweir case TOKEN_LINK_START: pTmp = SwForm::aFormLinkStt; break; 3275cdf0e10cSrcweir case TOKEN_LINK_END: pTmp = SwForm::aFormLinkEnd; break; 3276cdf0e10cSrcweir case TOKEN_AUTHORITY: pTmp = SwForm::aFormAuth; break; 3277cdf0e10cSrcweir default:; //prevent warning 3278cdf0e10cSrcweir } 3279cdf0e10cSrcweir 3280cdf0e10cSrcweir InsertItem( pTmp ? String::CreateFromAscii(pTmp) 3281cdf0e10cSrcweir : aEmptyStr, aToken ); 3282cdf0e10cSrcweir bLastWasText = sal_False; 3283cdf0e10cSrcweir } 3284cdf0e10cSrcweir 3285cdf0e10cSrcweir aIt++; // #i21237# 3286cdf0e10cSrcweir } 3287cdf0e10cSrcweir if(!bLastWasText) 3288cdf0e10cSrcweir { 3289cdf0e10cSrcweir bLastWasText = sal_True; 3290cdf0e10cSrcweir SwFormToken aTemp(TOKEN_TEXT); 3291cdf0e10cSrcweir Control* pCtrl = InsertItem(aEmptyStr, aTemp); 3292cdf0e10cSrcweir if(!pSetActiveControl) 3293cdf0e10cSrcweir pSetActiveControl = pCtrl; 3294cdf0e10cSrcweir } 3295cdf0e10cSrcweir SetActiveControl(pSetActiveControl); 3296cdf0e10cSrcweir } 3297cdf0e10cSrcweir AdjustScrolling(); 3298cdf0e10cSrcweir } 3299cdf0e10cSrcweir /* -----------------19.08.99 13:00------------------- 3300cdf0e10cSrcweir 3301cdf0e10cSrcweir --------------------------------------------------*/ 3302cdf0e10cSrcweir void SwTokenWindow::SetActiveControl(Control* pSet) 3303cdf0e10cSrcweir { 3304cdf0e10cSrcweir if( pSet != pActiveCtrl ) 3305cdf0e10cSrcweir { 3306cdf0e10cSrcweir pActiveCtrl = pSet; 3307cdf0e10cSrcweir if( pActiveCtrl ) 3308cdf0e10cSrcweir { 3309cdf0e10cSrcweir pActiveCtrl->GrabFocus(); 3310cdf0e10cSrcweir //it must be a SwTOXEdit 3311cdf0e10cSrcweir const SwFormToken* pFToken; 3312cdf0e10cSrcweir if( WINDOW_EDIT == pActiveCtrl->GetType() ) 3313cdf0e10cSrcweir pFToken = &((SwTOXEdit*)pActiveCtrl)->GetFormToken(); 3314cdf0e10cSrcweir else 3315cdf0e10cSrcweir pFToken = &((SwTOXButton*)pActiveCtrl)->GetFormToken(); 3316cdf0e10cSrcweir 3317cdf0e10cSrcweir SwFormToken aTemp( *pFToken ); 3318cdf0e10cSrcweir aButtonSelectedHdl.Call( &aTemp ); 3319cdf0e10cSrcweir } 3320cdf0e10cSrcweir } 3321cdf0e10cSrcweir } 3322cdf0e10cSrcweir 3323cdf0e10cSrcweir /* -----------------17.06.99 09:53------------------- 3324cdf0e10cSrcweir 3325cdf0e10cSrcweir --------------------------------------------------*/ 3326cdf0e10cSrcweir Control* SwTokenWindow::InsertItem(const String& rText, const SwFormToken& rToken) 3327cdf0e10cSrcweir { 3328cdf0e10cSrcweir Control* pRet = 0; 3329cdf0e10cSrcweir Control* pLast = aControlList.Last(); 3330cdf0e10cSrcweir Size aControlSize(GetOutputSizePixel()); 3331cdf0e10cSrcweir Point aControlPos; 3332cdf0e10cSrcweir if( pLast ) 3333cdf0e10cSrcweir { 3334cdf0e10cSrcweir aControlSize = pLast->GetSizePixel(); 3335cdf0e10cSrcweir aControlPos = pLast->GetPosPixel(); 3336cdf0e10cSrcweir aControlPos.X() += aControlSize.Width(); 3337cdf0e10cSrcweir } 3338cdf0e10cSrcweir if(TOKEN_TEXT == rToken.eTokenType) 3339cdf0e10cSrcweir { 3340cdf0e10cSrcweir SwTOXEdit* pEdit = new SwTOXEdit(&aCtrlParentWin, this, rToken); 3341cdf0e10cSrcweir pEdit->SetPosPixel(aControlPos); 3342cdf0e10cSrcweir aControlList.Insert(pEdit, aControlList.Count()); 3343cdf0e10cSrcweir pEdit->SetText(rText); 3344*ca62e2c2SSteve Yin //IAccessibility2 Impplementaton 2009----- 3345*ca62e2c2SSteve Yin sal_uInt32 nIndex = GetControlIndex( TOKEN_TEXT, pEdit ); 3346*ca62e2c2SSteve Yin String s1 = String::CreateFromAscii(" ("); 3347*ca62e2c2SSteve Yin String s2 = String::CreateFromAscii(")"); 3348*ca62e2c2SSteve Yin String s3 = String::CreateFromAscii(", "); 3349*ca62e2c2SSteve Yin String strName(accessibleName); 3350*ca62e2c2SSteve Yin strName += String::CreateFromInt32(nIndex); 3351*ca62e2c2SSteve Yin if ( nIndex == 1 ) 3352*ca62e2c2SSteve Yin { 3353*ca62e2c2SSteve Yin /*Press left or right arrow to choose the structure controls*/ 3354*ca62e2c2SSteve Yin strName += s1; 3355*ca62e2c2SSteve Yin strName += sAdditionalAccnameString2; 3356*ca62e2c2SSteve Yin strName += s3; 3357*ca62e2c2SSteve Yin /*Press Ctrl+Alt+A to move focus for more operations*/ 3358*ca62e2c2SSteve Yin strName += sAdditionalAccnameString1; 3359*ca62e2c2SSteve Yin strName += s3; 3360*ca62e2c2SSteve Yin /*Press Ctrl+Alt+B to move focus back to the current structure control*/ 3361*ca62e2c2SSteve Yin strName += sAdditionalAccnameString3; 3362*ca62e2c2SSteve Yin strName += s2; 3363*ca62e2c2SSteve Yin pEdit->SetAccessibleName(strName); 3364*ca62e2c2SSteve Yin } 3365*ca62e2c2SSteve Yin else 3366*ca62e2c2SSteve Yin { 3367*ca62e2c2SSteve Yin pEdit->SetAccessibleName(strName); 3368*ca62e2c2SSteve Yin } 3369*ca62e2c2SSteve Yin //-----IAccessibility2 Impplementaton 2009 3370cdf0e10cSrcweir Size aEditSize(aControlSize); 3371cdf0e10cSrcweir aEditSize.Width() = pEdit->GetTextWidth(rText) + EDIT_MINWIDTH; 3372cdf0e10cSrcweir pEdit->SetSizePixel(aEditSize); 3373cdf0e10cSrcweir pEdit->SetModifyHdl(LINK(this, SwTokenWindow, EditResize )); 3374cdf0e10cSrcweir pEdit->SetPrevNextLink(LINK(this, SwTokenWindow, NextItemHdl)); 3375cdf0e10cSrcweir pEdit->SetGetFocusHdl(LINK(this, SwTokenWindow, TbxFocusHdl)); 3376cdf0e10cSrcweir pEdit->Show(); 3377cdf0e10cSrcweir pRet = pEdit; 3378cdf0e10cSrcweir } 3379cdf0e10cSrcweir else 3380cdf0e10cSrcweir { 3381cdf0e10cSrcweir SwTOXButton* pButton = new SwTOXButton(&aCtrlParentWin, this, rToken); 3382cdf0e10cSrcweir pButton->SetPosPixel(aControlPos); 3383cdf0e10cSrcweir aControlList.Insert(pButton, aControlList.Count()); 3384cdf0e10cSrcweir Size aEditSize(aControlSize); 3385cdf0e10cSrcweir aEditSize.Width() = pButton->GetTextWidth(rText) + 5; 3386cdf0e10cSrcweir // pButton->SetControlBackground(aCtrlColor); 3387cdf0e10cSrcweir // pButton->SetControlForeground(aTextColor); 3388cdf0e10cSrcweir pButton->SetSizePixel(aEditSize); 3389cdf0e10cSrcweir pButton->SetPrevNextLink(LINK(this, SwTokenWindow, NextItemBtnHdl)); 3390cdf0e10cSrcweir pButton->SetGetFocusHdl(LINK(this, SwTokenWindow, TbxFocusBtnHdl)); 3391cdf0e10cSrcweir if(TOKEN_AUTHORITY != rToken.eTokenType) 3392cdf0e10cSrcweir pButton->SetText(aButtonTexts[rToken.eTokenType]); 3393cdf0e10cSrcweir else 3394cdf0e10cSrcweir { 3395cdf0e10cSrcweir //use the first two chars as symbol 3396cdf0e10cSrcweir String sTmp(SwAuthorityFieldType::GetAuthFieldName( 3397cdf0e10cSrcweir (ToxAuthorityField)rToken.nAuthorityField)); 3398cdf0e10cSrcweir pButton->SetText(sTmp.Copy(0, 2)); 3399cdf0e10cSrcweir } 3400*ca62e2c2SSteve Yin //IAccessibility2 Impplementaton 2009----- 3401*ca62e2c2SSteve Yin String sSpace = String::CreateFromAscii(" "); 3402*ca62e2c2SSteve Yin sal_uInt32 nIndex = GetControlIndex( rToken.eTokenType, pButton ); 3403*ca62e2c2SSteve Yin String sAccName = aButtonHelpTexts[rToken.eTokenType]; 3404*ca62e2c2SSteve Yin if ( nIndex ) 3405*ca62e2c2SSteve Yin { 3406*ca62e2c2SSteve Yin sAccName += sSpace; 3407*ca62e2c2SSteve Yin sAccName += String::CreateFromInt32(nIndex); 3408*ca62e2c2SSteve Yin } 3409*ca62e2c2SSteve Yin pButton->SetAccessibleName( sAccName ); 3410*ca62e2c2SSteve Yin //-----IAccessibility2 Impplementaton 2009 3411cdf0e10cSrcweir pButton->Show(); 3412cdf0e10cSrcweir pRet = pButton; 3413cdf0e10cSrcweir } 3414cdf0e10cSrcweir return pRet; 3415cdf0e10cSrcweir } 3416cdf0e10cSrcweir /* -----------------16.07.99 11:50------------------- 3417cdf0e10cSrcweir 3418cdf0e10cSrcweir --------------------------------------------------*/ 3419cdf0e10cSrcweir void SwTokenWindow::InsertAtSelection( 3420cdf0e10cSrcweir const String& rText, 3421cdf0e10cSrcweir const SwFormToken& rToken) 3422cdf0e10cSrcweir { 3423cdf0e10cSrcweir DBG_ASSERT(pActiveCtrl, "no active control!"); 3424cdf0e10cSrcweir if(!pActiveCtrl) 3425cdf0e10cSrcweir return; 3426cdf0e10cSrcweir SwFormToken aToInsertToken(rToken); 3427cdf0e10cSrcweir if(TOKEN_LINK_START == aToInsertToken.eTokenType) 3428cdf0e10cSrcweir { 3429cdf0e10cSrcweir //determine if start or end of hyperlink is appropriate 3430cdf0e10cSrcweir //eventually change a following link start into a link end 3431cdf0e10cSrcweir // groups of LS LE should be ignored 3432cdf0e10cSrcweir // <insert> 3433cdf0e10cSrcweir //LS <insert> 3434cdf0e10cSrcweir //LE <insert> 3435cdf0e10cSrcweir //<insert> LS 3436cdf0e10cSrcweir //<insert> LE 3437cdf0e10cSrcweir //<insert> 3438cdf0e10cSrcweir sal_Bool bPreStartLinkFound = sal_False; // 3439cdf0e10cSrcweir sal_Bool bPreEndLinkFound = sal_False; 3440cdf0e10cSrcweir 3441cdf0e10cSrcweir const Control* pControl = aControlList.First(); 3442cdf0e10cSrcweir const Control* pExchange = 0; 3443cdf0e10cSrcweir while( pControl && pActiveCtrl != pControl ) 3444cdf0e10cSrcweir { 3445cdf0e10cSrcweir if( WINDOW_EDIT != pControl->GetType()) 3446cdf0e10cSrcweir { 3447cdf0e10cSrcweir const SwFormToken& rNewToken = 3448cdf0e10cSrcweir ((SwTOXButton*)pControl)->GetFormToken(); 3449cdf0e10cSrcweir if( TOKEN_LINK_START == rNewToken.eTokenType ) 3450cdf0e10cSrcweir { 3451cdf0e10cSrcweir bPreStartLinkFound = sal_True; 3452cdf0e10cSrcweir pExchange = 0; 3453cdf0e10cSrcweir } 3454cdf0e10cSrcweir else if(TOKEN_LINK_END == rNewToken.eTokenType) 3455cdf0e10cSrcweir { 3456cdf0e10cSrcweir if( bPreStartLinkFound ) 3457cdf0e10cSrcweir bPreStartLinkFound = sal_False; 3458cdf0e10cSrcweir else 3459cdf0e10cSrcweir { 3460cdf0e10cSrcweir bPreEndLinkFound = sal_False; 3461cdf0e10cSrcweir pExchange = pControl; 3462cdf0e10cSrcweir } 3463cdf0e10cSrcweir } 3464cdf0e10cSrcweir } 3465cdf0e10cSrcweir pControl = aControlList.Next(); 3466cdf0e10cSrcweir } 3467cdf0e10cSrcweir 3468cdf0e10cSrcweir sal_Bool bPostLinkEndFound = sal_False; 3469cdf0e10cSrcweir sal_Bool bPostLinkStartFound = sal_False; 3470cdf0e10cSrcweir if(!bPreStartLinkFound && !bPreEndLinkFound) 3471cdf0e10cSrcweir while(pControl) 3472cdf0e10cSrcweir { 3473cdf0e10cSrcweir if( pControl != pActiveCtrl && 3474cdf0e10cSrcweir WINDOW_EDIT != pControl->GetType()) 3475cdf0e10cSrcweir { 3476cdf0e10cSrcweir const SwFormToken& rNewToken = 3477cdf0e10cSrcweir ((SwTOXButton*)pControl)->GetFormToken(); 3478cdf0e10cSrcweir if( TOKEN_LINK_START == rNewToken.eTokenType ) 3479cdf0e10cSrcweir { 3480cdf0e10cSrcweir if(bPostLinkStartFound) 3481cdf0e10cSrcweir break; 3482cdf0e10cSrcweir bPostLinkStartFound = sal_True; 3483cdf0e10cSrcweir pExchange = pControl; 3484cdf0e10cSrcweir } 3485cdf0e10cSrcweir else if(TOKEN_LINK_END == rNewToken.eTokenType ) 3486cdf0e10cSrcweir { 3487cdf0e10cSrcweir if(bPostLinkStartFound) 3488cdf0e10cSrcweir { 3489cdf0e10cSrcweir bPostLinkStartFound = sal_False; 3490cdf0e10cSrcweir pExchange = 0; 3491cdf0e10cSrcweir } 3492cdf0e10cSrcweir else 3493cdf0e10cSrcweir { 3494cdf0e10cSrcweir bPostLinkEndFound = sal_True; 3495cdf0e10cSrcweir } 3496cdf0e10cSrcweir break; 3497cdf0e10cSrcweir } 3498cdf0e10cSrcweir } 3499cdf0e10cSrcweir pControl = aControlList.Next(); 3500cdf0e10cSrcweir } 3501cdf0e10cSrcweir 3502cdf0e10cSrcweir if(bPreStartLinkFound) 3503cdf0e10cSrcweir { 3504cdf0e10cSrcweir aToInsertToken.eTokenType = TOKEN_LINK_END; 3505cdf0e10cSrcweir aToInsertToken.sText = aButtonTexts[TOKEN_LINK_END]; 3506cdf0e10cSrcweir } 3507cdf0e10cSrcweir 3508cdf0e10cSrcweir if(bPostLinkStartFound) 3509cdf0e10cSrcweir { 3510cdf0e10cSrcweir DBG_ASSERT(pExchange, "no control to exchange?"); 3511cdf0e10cSrcweir if(pExchange) 3512cdf0e10cSrcweir { 3513cdf0e10cSrcweir ((SwTOXButton*)pExchange)->SetLinkEnd(); 3514cdf0e10cSrcweir ((SwTOXButton*)pExchange)->SetText(aButtonTexts[TOKEN_LINK_END]); 3515cdf0e10cSrcweir } 3516cdf0e10cSrcweir } 3517cdf0e10cSrcweir 3518cdf0e10cSrcweir if(bPreEndLinkFound) 3519cdf0e10cSrcweir { 3520cdf0e10cSrcweir DBG_ASSERT(pExchange, "no control to exchange?"); 3521cdf0e10cSrcweir if(pExchange) 3522cdf0e10cSrcweir { 3523cdf0e10cSrcweir ((SwTOXButton*)pExchange)->SetLinkStart(); 3524cdf0e10cSrcweir ((SwTOXButton*)pExchange)->SetText(aButtonTexts[TOKEN_LINK_START]); 3525cdf0e10cSrcweir } 3526cdf0e10cSrcweir } 3527cdf0e10cSrcweir } 3528cdf0e10cSrcweir 3529cdf0e10cSrcweir //if the active control is text then insert a new button at the selection 3530cdf0e10cSrcweir //else replace the button 3531cdf0e10cSrcweir sal_uInt32 nActivePos = aControlList.GetPos(pActiveCtrl); 3532cdf0e10cSrcweir sal_uInt32 nInsertPos = nActivePos; 3533cdf0e10cSrcweir 3534cdf0e10cSrcweir Size aControlSize(GetOutputSizePixel()); 3535cdf0e10cSrcweir if( WINDOW_EDIT == pActiveCtrl->GetType()) 3536cdf0e10cSrcweir { 3537cdf0e10cSrcweir nInsertPos++; 3538cdf0e10cSrcweir Selection aSel = ((SwTOXEdit*)pActiveCtrl)->GetSelection(); 3539cdf0e10cSrcweir aSel.Justify(); 3540cdf0e10cSrcweir String sEditText = ((SwTOXEdit*)pActiveCtrl)->GetText(); 3541cdf0e10cSrcweir String sLeft = sEditText.Copy( 0, static_cast< sal_uInt16 >(aSel.A()) ); 3542cdf0e10cSrcweir String sRight = sEditText.Copy( static_cast< sal_uInt16 >(aSel.B()), 3543cdf0e10cSrcweir static_cast< sal_uInt16 >(sEditText.Len() - aSel.B())); 3544cdf0e10cSrcweir 3545cdf0e10cSrcweir ((SwTOXEdit*)pActiveCtrl)->SetText(sLeft); 3546cdf0e10cSrcweir ((SwTOXEdit*)pActiveCtrl)->AdjustSize(); 3547cdf0e10cSrcweir 3548cdf0e10cSrcweir SwFormToken aTmpToken(TOKEN_TEXT); 3549cdf0e10cSrcweir SwTOXEdit* pEdit = new SwTOXEdit(&aCtrlParentWin, this, aTmpToken); 3550cdf0e10cSrcweir aControlList.Insert(pEdit, nActivePos + 1); 3551cdf0e10cSrcweir pEdit->SetText(sRight); 3552*ca62e2c2SSteve Yin //IAccessibility2 Impplementaton 2009----- 3553*ca62e2c2SSteve Yin sal_uInt32 nIndex = GetControlIndex( TOKEN_TEXT, pEdit ); 3554*ca62e2c2SSteve Yin String s1 = String::CreateFromAscii(" ("); 3555*ca62e2c2SSteve Yin String s2 = String::CreateFromAscii(")"); 3556*ca62e2c2SSteve Yin String s3 = String::CreateFromAscii(", "); 3557*ca62e2c2SSteve Yin String strName(accessibleName); 3558*ca62e2c2SSteve Yin strName += String::CreateFromInt32(nIndex); 3559*ca62e2c2SSteve Yin if ( nIndex == 1) 3560*ca62e2c2SSteve Yin { 3561*ca62e2c2SSteve Yin /*Press left or right arrow to choose the structure controls*/ 3562*ca62e2c2SSteve Yin strName += s1; 3563*ca62e2c2SSteve Yin strName += sAdditionalAccnameString2; 3564*ca62e2c2SSteve Yin strName += s3; 3565*ca62e2c2SSteve Yin /*Press Ctrl+Alt+A to move focus for more operations*/ 3566*ca62e2c2SSteve Yin strName += sAdditionalAccnameString1; 3567*ca62e2c2SSteve Yin strName += s3; 3568*ca62e2c2SSteve Yin /*Press Ctrl+Alt+B to move focus back to the current structure control*/ 3569*ca62e2c2SSteve Yin strName += sAdditionalAccnameString3; 3570*ca62e2c2SSteve Yin strName += s2; 3571*ca62e2c2SSteve Yin pEdit->SetAccessibleName(strName); 3572*ca62e2c2SSteve Yin } 3573*ca62e2c2SSteve Yin else 3574*ca62e2c2SSteve Yin { 3575*ca62e2c2SSteve Yin pEdit->SetAccessibleName(strName); 3576*ca62e2c2SSteve Yin } 3577*ca62e2c2SSteve Yin //-----IAccessibility2 Impplementaton 2009 3578cdf0e10cSrcweir pEdit->SetSizePixel(aControlSize); 3579cdf0e10cSrcweir pEdit->AdjustSize(); 3580cdf0e10cSrcweir pEdit->SetModifyHdl(LINK(this, SwTokenWindow, EditResize )); 3581cdf0e10cSrcweir pEdit->SetPrevNextLink(LINK(this, SwTokenWindow, NextItemHdl)); 3582cdf0e10cSrcweir pEdit->SetGetFocusHdl(LINK(this, SwTokenWindow, TbxFocusHdl)); 3583cdf0e10cSrcweir pEdit->Show(); 3584cdf0e10cSrcweir } 3585cdf0e10cSrcweir else 3586cdf0e10cSrcweir { 3587cdf0e10cSrcweir aControlList.Remove(pActiveCtrl); 3588cdf0e10cSrcweir pActiveCtrl->Hide(); 3589cdf0e10cSrcweir delete pActiveCtrl; 3590cdf0e10cSrcweir } 3591cdf0e10cSrcweir 3592cdf0e10cSrcweir //now the new button 3593cdf0e10cSrcweir SwTOXButton* pButton = new SwTOXButton(&aCtrlParentWin, this, aToInsertToken); 3594cdf0e10cSrcweir aControlList.Insert(pButton, nInsertPos); 3595cdf0e10cSrcweir pButton->SetPrevNextLink(LINK(this, SwTokenWindow, NextItemBtnHdl)); 3596cdf0e10cSrcweir pButton->SetGetFocusHdl(LINK(this, SwTokenWindow, TbxFocusBtnHdl)); 3597cdf0e10cSrcweir if(TOKEN_AUTHORITY != aToInsertToken.eTokenType) 3598cdf0e10cSrcweir pButton->SetText(aButtonTexts[aToInsertToken.eTokenType]); 3599cdf0e10cSrcweir else 3600cdf0e10cSrcweir { 3601cdf0e10cSrcweir //use the first two chars as symbol 3602cdf0e10cSrcweir String sTmp(SwAuthorityFieldType::GetAuthFieldName( 3603cdf0e10cSrcweir (ToxAuthorityField)aToInsertToken.nAuthorityField)); 3604cdf0e10cSrcweir pButton->SetText(sTmp.Copy(0, 2)); 3605cdf0e10cSrcweir } 3606cdf0e10cSrcweir 3607*ca62e2c2SSteve Yin //IAccessibility2 Impplementaton 2009----- 3608*ca62e2c2SSteve Yin String sSpace = String::CreateFromAscii(" "); 3609*ca62e2c2SSteve Yin sal_uInt32 nIndex = GetControlIndex( rToken.eTokenType, pButton ); 3610*ca62e2c2SSteve Yin String sAccName = aButtonHelpTexts[rToken.eTokenType]; 3611*ca62e2c2SSteve Yin if ( nIndex ) 3612*ca62e2c2SSteve Yin { 3613*ca62e2c2SSteve Yin sAccName += sSpace; 3614*ca62e2c2SSteve Yin sAccName += String::CreateFromInt32(nIndex); 3615*ca62e2c2SSteve Yin } 3616*ca62e2c2SSteve Yin pButton->SetAccessibleName( sAccName ); 3617*ca62e2c2SSteve Yin //-----IAccessibility2 Impplementaton 2009 3618cdf0e10cSrcweir Size aEditSize(GetOutputSizePixel()); 3619cdf0e10cSrcweir aEditSize.Width() = pButton->GetTextWidth(rText) + 5; 3620cdf0e10cSrcweir pButton->SetSizePixel(aEditSize); 3621cdf0e10cSrcweir pButton->Check(sal_True); 3622cdf0e10cSrcweir pButton->Show(); 3623cdf0e10cSrcweir SetActiveControl(pButton); 3624cdf0e10cSrcweir 3625cdf0e10cSrcweir AdjustPositions(); 3626cdf0e10cSrcweir } 3627cdf0e10cSrcweir /* -----------------19.08.99 12:42------------------- 3628cdf0e10cSrcweir 3629cdf0e10cSrcweir --------------------------------------------------*/ 3630cdf0e10cSrcweir void SwTokenWindow::RemoveControl(SwTOXButton* pDel, sal_Bool bInternalCall ) 3631cdf0e10cSrcweir { 3632cdf0e10cSrcweir if(bInternalCall && TOX_AUTHORITIES == pForm->GetTOXType()) 3633cdf0e10cSrcweir m_pParent->PreTokenButtonRemoved(pDel->GetFormToken()); 3634cdf0e10cSrcweir 3635cdf0e10cSrcweir sal_uInt32 nActivePos = aControlList.GetPos(pDel); 3636cdf0e10cSrcweir DBG_ASSERT(nActivePos != 0xffffffff, "Control does not exist!"); 3637cdf0e10cSrcweir // the two neighbours of the box must be merged 3638cdf0e10cSrcweir // the properties of the right one will be lost 3639cdf0e10cSrcweir DBG_ASSERT(nActivePos && nActivePos < aControlList.Count() - 1, 3640cdf0e10cSrcweir "Button at first or last position?"); 3641cdf0e10cSrcweir aControlList.Seek(nActivePos - 1); 3642cdf0e10cSrcweir Control* pLeftEdit = aControlList.GetCurObject(); 3643cdf0e10cSrcweir aControlList.Seek(nActivePos + 1); 3644cdf0e10cSrcweir Control* pRightEdit = aControlList.GetCurObject(); 3645cdf0e10cSrcweir String sTemp(((SwTOXEdit*)pLeftEdit)->GetText()); 3646cdf0e10cSrcweir sTemp += ((SwTOXEdit*)pRightEdit)->GetText(); 3647cdf0e10cSrcweir ((SwTOXEdit*)pLeftEdit)->SetText(sTemp); 3648cdf0e10cSrcweir ((SwTOXEdit*)pLeftEdit)->AdjustSize(); 3649cdf0e10cSrcweir 3650cdf0e10cSrcweir aControlList.Remove(pRightEdit); 3651cdf0e10cSrcweir delete pRightEdit; 3652cdf0e10cSrcweir 3653cdf0e10cSrcweir aControlList.Remove(pDel); 3654cdf0e10cSrcweir pActiveCtrl->Hide(); 3655cdf0e10cSrcweir delete pActiveCtrl; 3656cdf0e10cSrcweir SetActiveControl(pLeftEdit); 3657cdf0e10cSrcweir AdjustPositions(); 3658cdf0e10cSrcweir if(aModifyHdl.IsSet()) 3659cdf0e10cSrcweir aModifyHdl.Call(0); 3660cdf0e10cSrcweir } 3661cdf0e10cSrcweir 3662cdf0e10cSrcweir /* -----------------16.07.99 12:39------------------- 3663cdf0e10cSrcweir 3664cdf0e10cSrcweir --------------------------------------------------*/ 3665cdf0e10cSrcweir void SwTokenWindow::AdjustPositions() 3666cdf0e10cSrcweir { 3667cdf0e10cSrcweir if(aControlList.Count() > 1) 3668cdf0e10cSrcweir { 3669cdf0e10cSrcweir Control* pCtrl = aControlList.First(); 3670cdf0e10cSrcweir Point aNextPos = pCtrl->GetPosPixel(); 3671cdf0e10cSrcweir aNextPos.X() += pCtrl->GetSizePixel().Width(); 3672cdf0e10cSrcweir while(0 != (pCtrl = aControlList.Next())) 3673cdf0e10cSrcweir { 3674cdf0e10cSrcweir pCtrl->SetPosPixel(aNextPos); 3675cdf0e10cSrcweir aNextPos.X() += pCtrl->GetSizePixel().Width(); 3676cdf0e10cSrcweir } 3677cdf0e10cSrcweir AdjustScrolling(); 3678cdf0e10cSrcweir } 3679cdf0e10cSrcweir }; 3680cdf0e10cSrcweir /* -----------------------------16.08.00 13:22-------------------------------- 3681cdf0e10cSrcweir 3682cdf0e10cSrcweir ---------------------------------------------------------------------------*/ 3683cdf0e10cSrcweir void SwTokenWindow::MoveControls(long nOffset) 3684cdf0e10cSrcweir { 3685cdf0e10cSrcweir // move the complete list 3686cdf0e10cSrcweir Control* pCtrl = aControlList.First(); 3687cdf0e10cSrcweir do 3688cdf0e10cSrcweir { 3689cdf0e10cSrcweir Point aPos = pCtrl->GetPosPixel(); 3690cdf0e10cSrcweir aPos.X() += nOffset; 3691cdf0e10cSrcweir pCtrl->SetPosPixel(aPos); 3692cdf0e10cSrcweir }while(0 != (pCtrl = aControlList.Next())); 3693cdf0e10cSrcweir } 3694cdf0e10cSrcweir /* -----------------------------14.01.00 13:03-------------------------------- 3695cdf0e10cSrcweir 3696cdf0e10cSrcweir ---------------------------------------------------------------------------*/ 3697cdf0e10cSrcweir void SwTokenWindow::AdjustScrolling() 3698cdf0e10cSrcweir { 3699cdf0e10cSrcweir if(aControlList.Count() > 1) 3700cdf0e10cSrcweir { 3701cdf0e10cSrcweir //validate scroll buttons 3702cdf0e10cSrcweir Control* pLastCtrl = aControlList.Last(); 3703cdf0e10cSrcweir Control* pFirstCtrl = aControlList.First(); 3704cdf0e10cSrcweir long nSpace = aCtrlParentWin.GetSizePixel().Width(); 3705cdf0e10cSrcweir long nWidth = pLastCtrl->GetPosPixel().X() - pFirstCtrl->GetPosPixel().X() 3706cdf0e10cSrcweir + pLastCtrl->GetSizePixel().Width(); 3707cdf0e10cSrcweir sal_Bool bEnable = nWidth > nSpace; 3708cdf0e10cSrcweir //the active control must be visible 3709cdf0e10cSrcweir if(bEnable && pActiveCtrl) 3710cdf0e10cSrcweir { 3711cdf0e10cSrcweir Point aActivePos(pActiveCtrl->GetPosPixel()); 3712cdf0e10cSrcweir long nMove = 0; 3713cdf0e10cSrcweir if(aActivePos.X() < 0) 3714cdf0e10cSrcweir nMove = -aActivePos.X(); 3715cdf0e10cSrcweir else if((aActivePos.X() + pActiveCtrl->GetSizePixel().Width()) > nSpace) 3716cdf0e10cSrcweir nMove = -(aActivePos.X() + pActiveCtrl->GetSizePixel().Width() - nSpace); 3717cdf0e10cSrcweir if(nMove) 3718cdf0e10cSrcweir MoveControls(nMove); 3719cdf0e10cSrcweir aLeftScrollWin.Enable(aControlList.First()->GetPosPixel().X() < 0); 3720cdf0e10cSrcweir Control* pCtrl = aControlList.Last(); 3721cdf0e10cSrcweir aRightScrollWin.Enable((pCtrl->GetPosPixel().X() + pCtrl->GetSizePixel().Width()) > nSpace); 3722cdf0e10cSrcweir } 3723cdf0e10cSrcweir else 3724cdf0e10cSrcweir { 3725cdf0e10cSrcweir if(pFirstCtrl) 3726cdf0e10cSrcweir { 3727cdf0e10cSrcweir //if the control fits into the space then the first control must be at postion 0 3728cdf0e10cSrcweir long nFirstPos = pFirstCtrl->GetPosPixel().X(); 3729cdf0e10cSrcweir if(nFirstPos != 0) 3730cdf0e10cSrcweir MoveControls(-nFirstPos); 3731cdf0e10cSrcweir } 3732cdf0e10cSrcweir aRightScrollWin.Enable(sal_False); 3733cdf0e10cSrcweir aLeftScrollWin.Enable(sal_False); 3734cdf0e10cSrcweir } 3735cdf0e10cSrcweir } 3736cdf0e10cSrcweir } 3737cdf0e10cSrcweir /* -----------------------------14.01.00 13:57-------------------------------- 3738cdf0e10cSrcweir 3739cdf0e10cSrcweir ---------------------------------------------------------------------------*/ 3740cdf0e10cSrcweir IMPL_LINK(SwTokenWindow, ScrollHdl, ImageButton*, pBtn ) 3741cdf0e10cSrcweir { 3742cdf0e10cSrcweir if(aControlList.Count()) 3743cdf0e10cSrcweir { 3744cdf0e10cSrcweir const long nSpace = aCtrlParentWin.GetSizePixel().Width(); 3745cdf0e10cSrcweir #if OSL_DEBUG_LEVEL > 1 3746cdf0e10cSrcweir //find all start/end positions and print it 3747cdf0e10cSrcweir String sMessage(String::CreateFromAscii("Space: ")); 3748cdf0e10cSrcweir sMessage += String::CreateFromInt32(nSpace); 3749cdf0e10cSrcweir sMessage += String::CreateFromAscii(" | "); 3750cdf0e10cSrcweir Control* pDebugCtrl = aControlList.First(); 3751cdf0e10cSrcweir do 3752cdf0e10cSrcweir { 3753cdf0e10cSrcweir long nDebugXPos = pDebugCtrl->GetPosPixel().X(); 3754cdf0e10cSrcweir long nDebugWidth = pDebugCtrl->GetSizePixel().Width(); 3755cdf0e10cSrcweir sMessage += String::CreateFromInt32( nDebugXPos ); 3756cdf0e10cSrcweir sMessage += String::CreateFromAscii(" "); 3757cdf0e10cSrcweir sMessage += String::CreateFromInt32(nDebugXPos + nDebugWidth); 3758cdf0e10cSrcweir sMessage += String::CreateFromAscii(" | "); 3759cdf0e10cSrcweir 3760cdf0e10cSrcweir }while(0 != (pDebugCtrl = aControlList.Next())); 3761cdf0e10cSrcweir 3762cdf0e10cSrcweir #endif 3763cdf0e10cSrcweir 3764cdf0e10cSrcweir long nMove = 0; 3765cdf0e10cSrcweir if(pBtn == &aLeftScrollWin) 3766cdf0e10cSrcweir { 3767cdf0e10cSrcweir //find the first completely visible control (left edge visible) 3768cdf0e10cSrcweir for(sal_uInt16 i = 0; i < aControlList.Count(); i++ ) 3769cdf0e10cSrcweir { 3770cdf0e10cSrcweir Control* pCtrl = aControlList.GetObject(i); 3771cdf0e10cSrcweir long nXPos = pCtrl->GetPosPixel().X(); 3772cdf0e10cSrcweir if(nXPos >= 0) 3773cdf0e10cSrcweir { 3774cdf0e10cSrcweir if(!i) 3775cdf0e10cSrcweir //move the current control to the left edge 3776cdf0e10cSrcweir nMove = -nXPos; 3777cdf0e10cSrcweir else 3778cdf0e10cSrcweir //move the left neighbor to the start position 3779cdf0e10cSrcweir nMove = -aControlList.GetObject(i - 1)->GetPosPixel().X(); 3780cdf0e10cSrcweir break; 3781cdf0e10cSrcweir } 3782cdf0e10cSrcweir } 3783cdf0e10cSrcweir } 3784cdf0e10cSrcweir else 3785cdf0e10cSrcweir { 3786cdf0e10cSrcweir //find the first completely visible control (left edge visible) 3787cdf0e10cSrcweir for(sal_uLong i = aControlList.Count(); i; i-- ) 3788cdf0e10cSrcweir { 3789cdf0e10cSrcweir Control* pCtrl = aControlList.GetObject(i - 1); 3790cdf0e10cSrcweir long nCtrlWidth = pCtrl->GetSizePixel().Width(); 3791cdf0e10cSrcweir long nXPos = pCtrl->GetPosPixel().X() + nCtrlWidth; 3792cdf0e10cSrcweir if(nXPos <= nSpace) 3793cdf0e10cSrcweir { 3794cdf0e10cSrcweir if( i < aControlList.Count()) 3795cdf0e10cSrcweir { 3796cdf0e10cSrcweir //move the right neighbor to the right edge right aligned 3797cdf0e10cSrcweir Control* pRight = aControlList.GetObject(i); 3798cdf0e10cSrcweir nMove = nSpace - pRight->GetPosPixel().X() - pRight->GetSizePixel().Width(); 3799cdf0e10cSrcweir } 3800cdf0e10cSrcweir break; 3801cdf0e10cSrcweir } 3802cdf0e10cSrcweir } 3803cdf0e10cSrcweir 3804cdf0e10cSrcweir //move it left until it's completely visible 3805cdf0e10cSrcweir } 3806cdf0e10cSrcweir if(nMove) 3807cdf0e10cSrcweir { 3808cdf0e10cSrcweir // move the complete list 3809cdf0e10cSrcweir Control* pCtrl = aControlList.First(); 3810cdf0e10cSrcweir do 3811cdf0e10cSrcweir { 3812cdf0e10cSrcweir Point aPos = pCtrl->GetPosPixel(); 3813cdf0e10cSrcweir aPos.X() += nMove; 3814cdf0e10cSrcweir pCtrl->SetPosPixel(aPos); 3815cdf0e10cSrcweir }while(0 != (pCtrl = aControlList.Next())); 3816cdf0e10cSrcweir aLeftScrollWin.Enable(aControlList.First()->GetPosPixel().X() < 0); 3817cdf0e10cSrcweir pCtrl = aControlList.Last(); 3818cdf0e10cSrcweir aRightScrollWin.Enable((pCtrl->GetPosPixel().X() + pCtrl->GetSizePixel().Width()) > nSpace); 3819cdf0e10cSrcweir 3820cdf0e10cSrcweir #if OSL_DEBUG_LEVEL > 1 3821cdf0e10cSrcweir sMessage.AppendAscii("Move: "); 3822cdf0e10cSrcweir sMessage += String::CreateFromInt32(nMove); 3823cdf0e10cSrcweir GetParent()->GetParent()->GetParent()->SetText(sMessage); 3824cdf0e10cSrcweir #endif 3825cdf0e10cSrcweir } 3826cdf0e10cSrcweir } 3827cdf0e10cSrcweir return 0; 3828cdf0e10cSrcweir } 3829cdf0e10cSrcweir /* -----------------17.06.99 11:59------------------- 3830cdf0e10cSrcweir 3831cdf0e10cSrcweir --------------------------------------------------*/ 3832cdf0e10cSrcweir String SwTokenWindow::GetPattern() const 3833cdf0e10cSrcweir { 3834cdf0e10cSrcweir String sRet; 3835cdf0e10cSrcweir const Control* pControl = ((SwTokenWindow*)this)->aControlList.First(); 3836cdf0e10cSrcweir while(pControl) 3837cdf0e10cSrcweir { 3838cdf0e10cSrcweir const SwFormToken& rNewToken = WINDOW_EDIT == pControl->GetType() 3839cdf0e10cSrcweir ? ((SwTOXEdit*)pControl)->GetFormToken() 3840cdf0e10cSrcweir : ((SwTOXButton*)pControl)->GetFormToken(); 3841cdf0e10cSrcweir 3842cdf0e10cSrcweir //TODO: prevent input of TOX_STYLE_DELIMITER in KeyInput 3843cdf0e10cSrcweir sRet += rNewToken.GetString(); 3844cdf0e10cSrcweir 3845cdf0e10cSrcweir pControl = ((SwTokenWindow*)this)->aControlList.Next(); 3846cdf0e10cSrcweir } 3847cdf0e10cSrcweir return sRet; 3848cdf0e10cSrcweir } 3849cdf0e10cSrcweir /* -----------------19.08.99 11:27------------------- 3850cdf0e10cSrcweir Description: Check if a control of the specified 3851cdf0e10cSrcweir TokenType is already contained in the list 3852cdf0e10cSrcweir --------------------------------------------------*/ 3853cdf0e10cSrcweir sal_Bool SwTokenWindow::Contains(FormTokenType eSearchFor) const 3854cdf0e10cSrcweir { 3855cdf0e10cSrcweir sal_Bool bRet = sal_False; 3856cdf0e10cSrcweir const Control* pControl = ((SwTokenWindow*)this)->aControlList.First(); 3857cdf0e10cSrcweir while(pControl) 3858cdf0e10cSrcweir { 3859cdf0e10cSrcweir const SwFormToken& rNewToken = WINDOW_EDIT == pControl->GetType() 3860cdf0e10cSrcweir ? ((SwTOXEdit*)pControl)->GetFormToken() 3861cdf0e10cSrcweir : ((SwTOXButton*)pControl)->GetFormToken(); 3862cdf0e10cSrcweir 3863cdf0e10cSrcweir if(eSearchFor == rNewToken.eTokenType) 3864cdf0e10cSrcweir { 3865cdf0e10cSrcweir bRet = sal_True; 3866cdf0e10cSrcweir break; 3867cdf0e10cSrcweir } 3868cdf0e10cSrcweir pControl = ((SwTokenWindow*)this)->aControlList.Next(); 3869cdf0e10cSrcweir } 3870cdf0e10cSrcweir return bRet; 3871cdf0e10cSrcweir } 3872cdf0e10cSrcweir //--------------------------------------------------- 3873cdf0e10cSrcweir sal_Bool SwTokenWindow::CreateQuickHelp(Control* pCtrl, 3874cdf0e10cSrcweir const SwFormToken& rToken, 3875cdf0e10cSrcweir const HelpEvent& rHEvt) 3876cdf0e10cSrcweir { 3877cdf0e10cSrcweir sal_Bool bRet = sal_False; 3878cdf0e10cSrcweir if( rHEvt.GetMode() & HELPMODE_QUICK ) 3879cdf0e10cSrcweir { 3880cdf0e10cSrcweir sal_Bool bBalloon = Help::IsBalloonHelpEnabled(); 3881cdf0e10cSrcweir String sEntry; 3882cdf0e10cSrcweir if(bBalloon || rToken.eTokenType != TOKEN_AUTHORITY) 3883cdf0e10cSrcweir sEntry = (aButtonHelpTexts[rToken.eTokenType]); 3884cdf0e10cSrcweir if(rToken.eTokenType == TOKEN_AUTHORITY ) 3885cdf0e10cSrcweir { 3886cdf0e10cSrcweir sEntry += SwAuthorityFieldType::GetAuthFieldName( 3887cdf0e10cSrcweir (ToxAuthorityField) rToken.nAuthorityField); 3888cdf0e10cSrcweir } 3889cdf0e10cSrcweir 3890cdf0e10cSrcweir Point aPos = OutputToScreenPixel(pCtrl->GetPosPixel()); 3891cdf0e10cSrcweir Rectangle aItemRect( aPos, pCtrl->GetSizePixel() ); 3892cdf0e10cSrcweir if(rToken.eTokenType == TOKEN_TAB_STOP ) 3893cdf0e10cSrcweir { 3894cdf0e10cSrcweir // sEntry += '\n'; 3895cdf0e10cSrcweir // sEntry += rToken.nTabStopPosition; 3896cdf0e10cSrcweir } 3897cdf0e10cSrcweir else 3898cdf0e10cSrcweir { 3899cdf0e10cSrcweir if(rToken.sCharStyleName.Len()) 3900cdf0e10cSrcweir { 3901cdf0e10cSrcweir if(bBalloon) 3902cdf0e10cSrcweir sEntry += '\n'; 3903cdf0e10cSrcweir else 3904cdf0e10cSrcweir sEntry += ' '; 3905cdf0e10cSrcweir sEntry += sCharStyle; 3906cdf0e10cSrcweir sEntry += rToken.sCharStyleName; 3907cdf0e10cSrcweir } 3908cdf0e10cSrcweir } 3909cdf0e10cSrcweir if(bBalloon) 3910cdf0e10cSrcweir { 3911cdf0e10cSrcweir Help::ShowBalloon( this, aPos, aItemRect, sEntry ); 3912cdf0e10cSrcweir } 3913cdf0e10cSrcweir else 3914cdf0e10cSrcweir Help::ShowQuickHelp( this, aItemRect, sEntry, 3915cdf0e10cSrcweir QUICKHELP_LEFT|QUICKHELP_VCENTER ); 3916cdf0e10cSrcweir bRet = sal_True; 3917cdf0e10cSrcweir } 3918cdf0e10cSrcweir return bRet; 3919cdf0e10cSrcweir } 3920cdf0e10cSrcweir /* -----------------------------14.01.00 12:22-------------------------------- 3921cdf0e10cSrcweir 3922cdf0e10cSrcweir ---------------------------------------------------------------------------*/ 3923cdf0e10cSrcweir void SwTokenWindow::Resize() 3924cdf0e10cSrcweir { 3925cdf0e10cSrcweir Size aCompleteSize(GetOutputSizePixel()); 3926cdf0e10cSrcweir 3927cdf0e10cSrcweir Point aRightPos(aRightScrollWin.GetPosPixel()); 3928cdf0e10cSrcweir Size aRightSize(aRightScrollWin.GetSizePixel()); 3929cdf0e10cSrcweir 3930cdf0e10cSrcweir Size aMiddleSize(aCtrlParentWin.GetSizePixel()); 3931cdf0e10cSrcweir 3932cdf0e10cSrcweir long nMove = aCompleteSize.Width() - aRightSize.Width() - aRightPos.X(); 3933cdf0e10cSrcweir 3934cdf0e10cSrcweir aRightPos.X() += nMove; 3935cdf0e10cSrcweir aRightScrollWin.SetPosPixel(aRightPos); 3936cdf0e10cSrcweir aMiddleSize.Width() += nMove; 3937cdf0e10cSrcweir aCtrlParentWin.SetSizePixel(aMiddleSize); 3938cdf0e10cSrcweir } 3939cdf0e10cSrcweir 3940cdf0e10cSrcweir /* -----------------16.06.99 15:23------------------- 3941cdf0e10cSrcweir 3942cdf0e10cSrcweir --------------------------------------------------*/ 3943cdf0e10cSrcweir IMPL_LINK(SwTokenWindow, EditResize, Edit*, pEdit) 3944cdf0e10cSrcweir { 3945cdf0e10cSrcweir ((SwTOXEdit*)pEdit)->AdjustSize(); 3946cdf0e10cSrcweir AdjustPositions(); 3947cdf0e10cSrcweir if(aModifyHdl.IsSet()) 3948cdf0e10cSrcweir aModifyHdl.Call(0); 3949cdf0e10cSrcweir return 0; 3950cdf0e10cSrcweir } 3951cdf0e10cSrcweir /* -----------------16.06.99 15:56------------------- 3952cdf0e10cSrcweir 3953cdf0e10cSrcweir --------------------------------------------------*/ 3954cdf0e10cSrcweir IMPL_LINK(SwTokenWindow, NextItemHdl, SwTOXEdit*, pEdit) 3955cdf0e10cSrcweir { 3956cdf0e10cSrcweir sal_uInt16 nPos = (sal_uInt16)aControlList.GetPos(pEdit); 3957cdf0e10cSrcweir if( (nPos && !pEdit->IsNextControl()) || 3958cdf0e10cSrcweir (nPos < aControlList.Count() - 1 && pEdit->IsNextControl())) 3959cdf0e10cSrcweir { 3960cdf0e10cSrcweir aControlList.Seek(nPos); 3961cdf0e10cSrcweir Control* pNextPrev = pEdit->IsNextControl() ? aControlList.Next() : aControlList.Prev(); 3962cdf0e10cSrcweir nPos += pEdit->IsNextControl() ? 1 : -1; 3963cdf0e10cSrcweir pNextPrev->GrabFocus(); 3964cdf0e10cSrcweir ((SwTOXButton*)pNextPrev)->Check(); 3965cdf0e10cSrcweir AdjustScrolling(); 3966cdf0e10cSrcweir } 3967cdf0e10cSrcweir return 0; 3968cdf0e10cSrcweir } 3969cdf0e10cSrcweir /* -----------------17.06.99 08:58------------------- 3970cdf0e10cSrcweir 3971cdf0e10cSrcweir --------------------------------------------------*/ 3972cdf0e10cSrcweir IMPL_LINK(SwTokenWindow, TbxFocusHdl, SwTOXEdit*, pEdit) 3973cdf0e10cSrcweir { 3974cdf0e10cSrcweir for(sal_uInt16 i = 0; i < aControlList.Count(); i++) 3975cdf0e10cSrcweir { 3976cdf0e10cSrcweir Control* pControl = aControlList.First(); 3977cdf0e10cSrcweir while(pControl) 3978cdf0e10cSrcweir { 3979cdf0e10cSrcweir if(WINDOW_EDIT != pControl->GetType() ) 3980cdf0e10cSrcweir ((SwTOXButton*)pControl)->Check(sal_False); 3981cdf0e10cSrcweir pControl = aControlList.Next(); 3982cdf0e10cSrcweir } 3983cdf0e10cSrcweir } 3984cdf0e10cSrcweir SetActiveControl(pEdit); 3985cdf0e10cSrcweir return 0; 3986cdf0e10cSrcweir } 3987cdf0e10cSrcweir /* -----------------17.06.99 10:05------------------- 3988cdf0e10cSrcweir 3989cdf0e10cSrcweir --------------------------------------------------*/ 3990cdf0e10cSrcweir IMPL_LINK(SwTokenWindow, NextItemBtnHdl, SwTOXButton*, pBtn ) 3991cdf0e10cSrcweir { 3992cdf0e10cSrcweir sal_uInt16 nPos = (sal_uInt16)aControlList.GetPos(pBtn); 3993cdf0e10cSrcweir if( (nPos && !pBtn->IsNextControl()) || 3994cdf0e10cSrcweir (nPos < aControlList.Count() - 1 && pBtn->IsNextControl())) 3995cdf0e10cSrcweir { 3996cdf0e10cSrcweir aControlList.Seek(nPos); 3997cdf0e10cSrcweir sal_Bool bNext = pBtn->IsNextControl(); 3998cdf0e10cSrcweir Control* pNextPrev = bNext ? aControlList.Next() : aControlList.Prev(); 3999cdf0e10cSrcweir pNextPrev->GrabFocus(); 4000cdf0e10cSrcweir Selection aSel(0, 0); 4001cdf0e10cSrcweir if(!bNext) 4002cdf0e10cSrcweir { 4003cdf0e10cSrcweir sal_uInt16 nLen = ((SwTOXEdit*)pNextPrev)->GetText().Len(); 4004cdf0e10cSrcweir aSel.A() = nLen; 4005cdf0e10cSrcweir aSel.B() = nLen; 4006cdf0e10cSrcweir } 4007cdf0e10cSrcweir ((SwTOXEdit*)pNextPrev)->SetSelection(aSel); 4008cdf0e10cSrcweir pBtn->Check(sal_False); 4009cdf0e10cSrcweir AdjustScrolling(); 4010cdf0e10cSrcweir } 4011cdf0e10cSrcweir return 0; 4012cdf0e10cSrcweir } 4013cdf0e10cSrcweir 4014cdf0e10cSrcweir /* -----------------17.06.99 10:04------------------- 4015cdf0e10cSrcweir 4016cdf0e10cSrcweir --------------------------------------------------*/ 4017cdf0e10cSrcweir IMPL_LINK(SwTokenWindow, TbxFocusBtnHdl, SwTOXButton*, pBtn ) 4018cdf0e10cSrcweir { 4019cdf0e10cSrcweir for(sal_uInt16 i = 0; i < aControlList.Count(); i++) 4020cdf0e10cSrcweir { 4021cdf0e10cSrcweir Control* pControl = aControlList.First(); 4022cdf0e10cSrcweir while(pControl) 4023cdf0e10cSrcweir { 4024cdf0e10cSrcweir if(WINDOW_EDIT != pControl->GetType() ) 4025cdf0e10cSrcweir ((SwTOXButton*)pControl)->Check(pBtn == pControl); 4026cdf0e10cSrcweir pControl = aControlList.Next(); 4027cdf0e10cSrcweir } 4028cdf0e10cSrcweir } 4029cdf0e10cSrcweir SetActiveControl(pBtn); 4030cdf0e10cSrcweir return 0; 4031cdf0e10cSrcweir } 4032cdf0e10cSrcweir /* -----------------------------28.01.2002 12:22------------------------------ 4033cdf0e10cSrcweir 4034cdf0e10cSrcweir ---------------------------------------------------------------------------*/ 4035cdf0e10cSrcweir void SwTokenWindow::GetFocus() 4036cdf0e10cSrcweir { 4037cdf0e10cSrcweir if(GETFOCUS_TAB & GetGetFocusFlags()) 4038cdf0e10cSrcweir { 4039cdf0e10cSrcweir Control* pFirst = aControlList.First(); 4040cdf0e10cSrcweir if(pFirst) 4041cdf0e10cSrcweir { 4042cdf0e10cSrcweir pFirst->GrabFocus(); 4043cdf0e10cSrcweir SetActiveControl(pFirst); 4044cdf0e10cSrcweir AdjustScrolling(); 4045cdf0e10cSrcweir } 4046cdf0e10cSrcweir } 4047cdf0e10cSrcweir } 4048*ca62e2c2SSteve Yin //IAccessibility2 Impplementaton 2009----- 4049*ca62e2c2SSteve Yin void SwTokenWindow::SetFocus2theAllBtn() 4050*ca62e2c2SSteve Yin { 4051*ca62e2c2SSteve Yin if (m_pParent) 4052*ca62e2c2SSteve Yin { 4053*ca62e2c2SSteve Yin m_pParent->SetFocus2theAllBtn(); 4054*ca62e2c2SSteve Yin } 4055*ca62e2c2SSteve Yin } 4056*ca62e2c2SSteve Yin sal_uInt32 SwTokenWindow::GetControlIndex(FormTokenType eType, const Control* pCurControl) const 4057*ca62e2c2SSteve Yin { 4058*ca62e2c2SSteve Yin //there are only one entry-text button and only one page-number button, 4059*ca62e2c2SSteve Yin //so we need not add index for these two buttons. 4060*ca62e2c2SSteve Yin if ( eType == TOKEN_ENTRY_TEXT || eType == TOKEN_PAGE_NUMS ) 4061*ca62e2c2SSteve Yin { 4062*ca62e2c2SSteve Yin return 0; 4063*ca62e2c2SSteve Yin } 4064*ca62e2c2SSteve Yin 4065*ca62e2c2SSteve Yin sal_uInt32 nIndex = 0; 4066*ca62e2c2SSteve Yin const Control* pControl = ((SwTokenWindow*)this)->aControlList.First(); 4067*ca62e2c2SSteve Yin while(pControl) 4068*ca62e2c2SSteve Yin { 4069*ca62e2c2SSteve Yin const SwFormToken& rNewToken = WINDOW_EDIT == pControl->GetType() 4070*ca62e2c2SSteve Yin ? ((SwTOXEdit*)pControl)->GetFormToken() 4071*ca62e2c2SSteve Yin : ((SwTOXButton*)pControl)->GetFormToken(); 4072*ca62e2c2SSteve Yin 4073*ca62e2c2SSteve Yin if(eType == rNewToken.eTokenType) 4074*ca62e2c2SSteve Yin { 4075*ca62e2c2SSteve Yin nIndex++; 4076*ca62e2c2SSteve Yin } 4077*ca62e2c2SSteve Yin pControl = ((SwTokenWindow*)this)->aControlList.Next(); 4078*ca62e2c2SSteve Yin } 4079*ca62e2c2SSteve Yin 4080*ca62e2c2SSteve Yin return nIndex; 4081*ca62e2c2SSteve Yin } 4082*ca62e2c2SSteve Yin //-----IAccessibility2 Impplementaton 2009 4083cdf0e10cSrcweir /* -----------------25.03.99 15:17------------------- 4084cdf0e10cSrcweir * 4085cdf0e10cSrcweir * --------------------------------------------------*/ 4086cdf0e10cSrcweir SwTOXStylesTabPage::SwTOXStylesTabPage(Window* pParent, const SfxItemSet& rAttrSet ) : 4087cdf0e10cSrcweir SfxTabPage(pParent, SW_RES(TP_TOX_STYLES), rAttrSet), 4088cdf0e10cSrcweir aFormatFL(this, SW_RES(FL_FORMAT )), 4089cdf0e10cSrcweir aLevelFT2(this, SW_RES(FT_LEVEL )), 4090cdf0e10cSrcweir aLevelLB(this, SW_RES(LB_LEVEL )), 4091cdf0e10cSrcweir aAssignBT(this, SW_RES(BT_ASSIGN )), 4092cdf0e10cSrcweir aTemplateFT(this, SW_RES(FT_TEMPLATE)), 4093cdf0e10cSrcweir aParaLayLB(this, SW_RES(LB_PARALAY )), 4094cdf0e10cSrcweir aStdBT(this, SW_RES(BT_STD )), 4095cdf0e10cSrcweir aEditStyleBT(this, SW_RES(BT_EDIT_STYLE )), 4096cdf0e10cSrcweir m_pCurrentForm(0) 4097cdf0e10cSrcweir { 4098cdf0e10cSrcweir FreeResource(); 4099cdf0e10cSrcweir 4100cdf0e10cSrcweir SetExchangeSupport( sal_True ); 4101cdf0e10cSrcweir 4102cdf0e10cSrcweir aAssignBT.SetModeImage( Image( SW_RES( IMG_ONE_LEFT_HC ) ), BMP_COLOR_HIGHCONTRAST ); 4103cdf0e10cSrcweir 4104cdf0e10cSrcweir aEditStyleBT.SetClickHdl (LINK( this, SwTOXStylesTabPage, EditStyleHdl)); 4105cdf0e10cSrcweir aAssignBT.SetClickHdl (LINK( this, SwTOXStylesTabPage, AssignHdl)); 4106cdf0e10cSrcweir aStdBT.SetClickHdl (LINK( this, SwTOXStylesTabPage, StdHdl)); 4107cdf0e10cSrcweir aParaLayLB.SetSelectHdl (LINK( this, SwTOXStylesTabPage, EnableSelectHdl)); 4108cdf0e10cSrcweir aLevelLB.SetSelectHdl (LINK( this, SwTOXStylesTabPage, EnableSelectHdl)); 4109cdf0e10cSrcweir aParaLayLB.SetDoubleClickHdl(LINK( this, SwTOXStylesTabPage, DoubleClickHdl)); 4110cdf0e10cSrcweir 4111cdf0e10cSrcweir aStdBT.SetAccessibleRelationMemberOf(&aFormatFL); 4112cdf0e10cSrcweir aAssignBT.SetAccessibleRelationMemberOf(&aFormatFL); 4113cdf0e10cSrcweir aEditStyleBT.SetAccessibleRelationMemberOf(&aFormatFL); 4114cdf0e10cSrcweir 4115cdf0e10cSrcweir } 4116cdf0e10cSrcweir /* -----------------25.03.99 15:17------------------- 4117cdf0e10cSrcweir * 4118cdf0e10cSrcweir * --------------------------------------------------*/ 4119cdf0e10cSrcweir SwTOXStylesTabPage::~SwTOXStylesTabPage() 4120cdf0e10cSrcweir { 4121cdf0e10cSrcweir delete m_pCurrentForm; 4122cdf0e10cSrcweir } 4123cdf0e10cSrcweir /* -----------------25.03.99 15:17------------------- 4124cdf0e10cSrcweir * 4125cdf0e10cSrcweir * --------------------------------------------------*/ 4126cdf0e10cSrcweir sal_Bool SwTOXStylesTabPage::FillItemSet( SfxItemSet& ) 4127cdf0e10cSrcweir { 4128cdf0e10cSrcweir return sal_True; 4129cdf0e10cSrcweir } 4130cdf0e10cSrcweir /* -----------------25.03.99 15:17------------------- 4131cdf0e10cSrcweir * 4132cdf0e10cSrcweir * --------------------------------------------------*/ 4133cdf0e10cSrcweir void SwTOXStylesTabPage::Reset( const SfxItemSet& rSet ) 4134cdf0e10cSrcweir { 4135cdf0e10cSrcweir ActivatePage(rSet); 4136cdf0e10cSrcweir } 4137cdf0e10cSrcweir /* -----------------25.03.99 15:17------------------- 4138cdf0e10cSrcweir * 4139cdf0e10cSrcweir * --------------------------------------------------*/ 4140cdf0e10cSrcweir void SwTOXStylesTabPage::ActivatePage( const SfxItemSet& ) 4141cdf0e10cSrcweir { 4142cdf0e10cSrcweir m_pCurrentForm = new SwForm(GetForm()); 4143cdf0e10cSrcweir aParaLayLB.Clear(); 4144cdf0e10cSrcweir aLevelLB.Clear(); 4145cdf0e10cSrcweir 4146cdf0e10cSrcweir // kein Hyperlink fuer Benutzerverzeichnisse 4147cdf0e10cSrcweir 4148cdf0e10cSrcweir sal_uInt16 i, nSize = m_pCurrentForm->GetFormMax(); 4149cdf0e10cSrcweir 4150cdf0e10cSrcweir // form-Pattern anzeigen ohne Titel 4151cdf0e10cSrcweir 4152cdf0e10cSrcweir //1. TemplateEntry anzeigen 4153cdf0e10cSrcweir String aStr( SW_RES( STR_TITLE )); 4154cdf0e10cSrcweir if( m_pCurrentForm->GetTemplate( 0 ).Len() ) 4155cdf0e10cSrcweir { 4156cdf0e10cSrcweir aStr += ' '; 4157cdf0e10cSrcweir aStr += aDeliStart; 4158cdf0e10cSrcweir aStr += m_pCurrentForm->GetTemplate( 0 ); 4159cdf0e10cSrcweir aStr += aDeliEnd; 4160cdf0e10cSrcweir } 4161cdf0e10cSrcweir aLevelLB.InsertEntry(aStr); 4162cdf0e10cSrcweir 4163cdf0e10cSrcweir for( i=1; i < nSize; ++i ) 4164cdf0e10cSrcweir { 4165cdf0e10cSrcweir if( TOX_INDEX == m_pCurrentForm->GetTOXType() && 4166cdf0e10cSrcweir FORM_ALPHA_DELIMITTER == i ) 4167cdf0e10cSrcweir aStr = SW_RESSTR(STR_ALPHA); 4168cdf0e10cSrcweir else 4169cdf0e10cSrcweir { 4170cdf0e10cSrcweir aStr = SW_RESSTR(STR_LEVEL); 4171cdf0e10cSrcweir aStr += String::CreateFromInt32( 4172cdf0e10cSrcweir TOX_INDEX == m_pCurrentForm->GetTOXType() ? i - 1 : i ); 4173cdf0e10cSrcweir } 4174cdf0e10cSrcweir String aCpy( aStr ); 4175cdf0e10cSrcweir 4176cdf0e10cSrcweir if( m_pCurrentForm->GetTemplate( i ).Len() ) 4177cdf0e10cSrcweir { 4178cdf0e10cSrcweir aCpy += ' '; 4179cdf0e10cSrcweir aCpy += aDeliStart; 4180cdf0e10cSrcweir aCpy += m_pCurrentForm->GetTemplate( i ); 4181cdf0e10cSrcweir aCpy += aDeliEnd; 4182cdf0e10cSrcweir } 4183cdf0e10cSrcweir aLevelLB.InsertEntry( aCpy ); 4184cdf0e10cSrcweir } 4185cdf0e10cSrcweir 4186cdf0e10cSrcweir // Templates initialisieren 4187cdf0e10cSrcweir const SwTxtFmtColl *pColl; 4188cdf0e10cSrcweir SwWrtShell& rSh = ((SwMultiTOXTabDialog*)GetTabDialog())->GetWrtShell(); 4189cdf0e10cSrcweir const sal_uInt16 nSz = rSh.GetTxtFmtCollCount(); 4190cdf0e10cSrcweir 4191cdf0e10cSrcweir for( i = 0; i < nSz; ++i ) 4192cdf0e10cSrcweir if( !(pColl = &rSh.GetTxtFmtColl( i ))->IsDefault() ) 4193cdf0e10cSrcweir aParaLayLB.InsertEntry( pColl->GetName() ); 4194cdf0e10cSrcweir 4195cdf0e10cSrcweir // Pool-Collections abfragen und fuer das Verzeichnis setzen 4196cdf0e10cSrcweir for( i = 0; i < m_pCurrentForm->GetFormMax(); ++i ) 4197cdf0e10cSrcweir { 4198cdf0e10cSrcweir aStr = m_pCurrentForm->GetTemplate( i ); 4199cdf0e10cSrcweir if( aStr.Len() && 4200cdf0e10cSrcweir LISTBOX_ENTRY_NOTFOUND == aParaLayLB.GetEntryPos( aStr )) 4201cdf0e10cSrcweir aParaLayLB.InsertEntry( aStr ); 4202cdf0e10cSrcweir } 4203cdf0e10cSrcweir 4204cdf0e10cSrcweir EnableSelectHdl(&aParaLayLB); 4205cdf0e10cSrcweir } 4206cdf0e10cSrcweir /* -----------------25.03.99 15:17------------------- 4207cdf0e10cSrcweir * 4208cdf0e10cSrcweir * --------------------------------------------------*/ 4209cdf0e10cSrcweir int SwTOXStylesTabPage::DeactivatePage( SfxItemSet* /*pSet*/ ) 4210cdf0e10cSrcweir { 4211cdf0e10cSrcweir GetForm() = *m_pCurrentForm; 4212cdf0e10cSrcweir return LEAVE_PAGE; 4213cdf0e10cSrcweir } 4214cdf0e10cSrcweir 4215cdf0e10cSrcweir /* -----------------25.03.99 15:17------------------- 4216cdf0e10cSrcweir * 4217cdf0e10cSrcweir * --------------------------------------------------*/ 4218cdf0e10cSrcweir SfxTabPage* SwTOXStylesTabPage::Create( Window* pParent, 4219cdf0e10cSrcweir const SfxItemSet& rAttrSet) 4220cdf0e10cSrcweir { 4221cdf0e10cSrcweir return new SwTOXStylesTabPage(pParent, rAttrSet); 4222cdf0e10cSrcweir } 4223cdf0e10cSrcweir /* -----------------26.03.99 12:47------------------- 4224cdf0e10cSrcweir * 4225cdf0e10cSrcweir * --------------------------------------------------*/ 4226cdf0e10cSrcweir IMPL_LINK( SwTOXStylesTabPage, EditStyleHdl, Button *, pBtn ) 4227cdf0e10cSrcweir { 4228cdf0e10cSrcweir if( LISTBOX_ENTRY_NOTFOUND != aParaLayLB.GetSelectEntryPos()) 4229cdf0e10cSrcweir { 4230cdf0e10cSrcweir SfxStringItem aStyle(SID_STYLE_EDIT, aParaLayLB.GetSelectEntry()); 4231cdf0e10cSrcweir SfxUInt16Item aFamily(SID_STYLE_FAMILY, SFX_STYLE_FAMILY_PARA); 4232cdf0e10cSrcweir // SwPtrItem aShell(FN_PARAM_WRTSHELL, pWrtShell); 4233cdf0e10cSrcweir Window* pDefDlgParent = Application::GetDefDialogParent(); 4234cdf0e10cSrcweir Application::SetDefDialogParent( pBtn ); 4235cdf0e10cSrcweir SwWrtShell& rSh = ((SwMultiTOXTabDialog*)GetTabDialog())->GetWrtShell(); 4236cdf0e10cSrcweir rSh.GetView().GetViewFrame()->GetDispatcher()->Execute( 4237cdf0e10cSrcweir SID_STYLE_EDIT, SFX_CALLMODE_SYNCHRON|SFX_CALLMODE_MODAL, 4238cdf0e10cSrcweir &aStyle, &aFamily/*, &aShell*/, 0L); 4239cdf0e10cSrcweir Application::SetDefDialogParent( pDefDlgParent ); 4240cdf0e10cSrcweir } 4241cdf0e10cSrcweir return 0; 4242cdf0e10cSrcweir } 4243cdf0e10cSrcweir /*-------------------------------------------------------------------- 4244cdf0e10cSrcweir Beschreibung: Vorlagen zuweisen 4245cdf0e10cSrcweir --------------------------------------------------------------------*/ 4246cdf0e10cSrcweir IMPL_LINK( SwTOXStylesTabPage, AssignHdl, Button *, EMPTYARG ) 4247cdf0e10cSrcweir { 4248cdf0e10cSrcweir sal_uInt16 nLevPos = aLevelLB.GetSelectEntryPos(); 4249cdf0e10cSrcweir sal_uInt16 nTemplPos = aParaLayLB.GetSelectEntryPos(); 4250cdf0e10cSrcweir if(nLevPos != LISTBOX_ENTRY_NOTFOUND && 4251cdf0e10cSrcweir nTemplPos != LISTBOX_ENTRY_NOTFOUND) 4252cdf0e10cSrcweir { 4253cdf0e10cSrcweir String aStr(aLevelLB.GetEntry(nLevPos)); 4254cdf0e10cSrcweir sal_uInt16 nDelPos = aStr.Search(aDeliStart); 4255cdf0e10cSrcweir if(nDelPos != STRING_NOTFOUND) 4256cdf0e10cSrcweir aStr.Erase(nDelPos-1); 4257cdf0e10cSrcweir aStr += ' '; 4258cdf0e10cSrcweir aStr += aDeliStart; 4259cdf0e10cSrcweir aStr += aParaLayLB.GetSelectEntry(); 4260cdf0e10cSrcweir 4261cdf0e10cSrcweir m_pCurrentForm->SetTemplate(nLevPos, aParaLayLB.GetSelectEntry()); 4262cdf0e10cSrcweir 4263cdf0e10cSrcweir aStr += aDeliEnd; 4264cdf0e10cSrcweir 4265cdf0e10cSrcweir aLevelLB.RemoveEntry(nLevPos); 4266cdf0e10cSrcweir aLevelLB.InsertEntry(aStr, nLevPos); 4267cdf0e10cSrcweir aLevelLB.SelectEntry(aStr); 4268cdf0e10cSrcweir ModifyHdl(0); 4269cdf0e10cSrcweir } 4270cdf0e10cSrcweir return 0; 4271cdf0e10cSrcweir } 4272cdf0e10cSrcweir /* -----------------26.03.99 09:10------------------- 4273cdf0e10cSrcweir * 4274cdf0e10cSrcweir * --------------------------------------------------*/ 4275cdf0e10cSrcweir IMPL_LINK( SwTOXStylesTabPage, StdHdl, Button *, EMPTYARG ) 4276cdf0e10cSrcweir { 4277cdf0e10cSrcweir sal_uInt16 nPos = aLevelLB.GetSelectEntryPos(); 4278cdf0e10cSrcweir if(nPos != LISTBOX_ENTRY_NOTFOUND) 4279cdf0e10cSrcweir { String aStr(aLevelLB.GetEntry(nPos)); 4280cdf0e10cSrcweir sal_uInt16 nDelPos = aStr.Search(aDeliStart); 4281cdf0e10cSrcweir if(nDelPos != STRING_NOTFOUND) 4282cdf0e10cSrcweir aStr.Erase(nDelPos-1); 4283cdf0e10cSrcweir aLevelLB.RemoveEntry(nPos); 4284cdf0e10cSrcweir aLevelLB.InsertEntry(aStr, nPos); 4285cdf0e10cSrcweir aLevelLB.SelectEntry(aStr); 4286cdf0e10cSrcweir m_pCurrentForm->SetTemplate(nPos, aEmptyStr); 4287cdf0e10cSrcweir ModifyHdl(0); 4288cdf0e10cSrcweir } 4289cdf0e10cSrcweir return 0; 4290cdf0e10cSrcweir } 4291cdf0e10cSrcweir /* -----------------26.03.99 09:11------------------- 4292cdf0e10cSrcweir * 4293cdf0e10cSrcweir * --------------------------------------------------*/ 4294cdf0e10cSrcweir IMPL_LINK_INLINE_START( SwTOXStylesTabPage, DoubleClickHdl, Button *, EMPTYARG ) 4295cdf0e10cSrcweir { 4296cdf0e10cSrcweir String aTmpName( aParaLayLB.GetSelectEntry() ); 4297cdf0e10cSrcweir SwWrtShell& rSh = ((SwMultiTOXTabDialog*)GetTabDialog())->GetWrtShell(); 4298cdf0e10cSrcweir 4299cdf0e10cSrcweir if(aParaLayLB.GetSelectEntryPos() != LISTBOX_ENTRY_NOTFOUND && 4300cdf0e10cSrcweir (aLevelLB.GetSelectEntryPos() == 0 || SwMultiTOXTabDialog::IsNoNum(rSh, aTmpName))) 4301cdf0e10cSrcweir AssignHdl(&aAssignBT); 4302cdf0e10cSrcweir return 0; 4303cdf0e10cSrcweir } 4304cdf0e10cSrcweir IMPL_LINK_INLINE_END( SwTOXStylesTabPage, DoubleClickHdl, Button *, EMPTYARG ) 4305cdf0e10cSrcweir /*-------------------------------------------------------------------- 4306cdf0e10cSrcweir Beschreibung: nur wenn selektiert enable 4307cdf0e10cSrcweir --------------------------------------------------------------------*/ 4308cdf0e10cSrcweir IMPL_LINK( SwTOXStylesTabPage, EnableSelectHdl, ListBox *, EMPTYARG ) 4309cdf0e10cSrcweir { 4310cdf0e10cSrcweir //UpdatePattern(); 4311cdf0e10cSrcweir aStdBT.Enable(aLevelLB.GetSelectEntryPos() != LISTBOX_ENTRY_NOTFOUND); 4312cdf0e10cSrcweir 4313cdf0e10cSrcweir SwWrtShell& rSh = ((SwMultiTOXTabDialog*)GetTabDialog())->GetWrtShell(); 4314cdf0e10cSrcweir String aTmpName(aParaLayLB.GetSelectEntry()); 4315cdf0e10cSrcweir aAssignBT.Enable(aParaLayLB.GetSelectEntryPos() != LISTBOX_ENTRY_NOTFOUND && 4316cdf0e10cSrcweir LISTBOX_ENTRY_NOTFOUND != aLevelLB.GetSelectEntryPos() && 4317cdf0e10cSrcweir (aLevelLB.GetSelectEntryPos() == 0 || SwMultiTOXTabDialog::IsNoNum(rSh, aTmpName))); 4318cdf0e10cSrcweir aEditStyleBT.Enable(aParaLayLB.GetSelectEntryPos() != LISTBOX_ENTRY_NOTFOUND ); 4319cdf0e10cSrcweir return 0; 4320cdf0e10cSrcweir } 4321cdf0e10cSrcweir /* -----------------------------18.01.00 16:54-------------------------------- 4322cdf0e10cSrcweir 4323cdf0e10cSrcweir ---------------------------------------------------------------------------*/ 4324cdf0e10cSrcweir IMPL_LINK(SwTOXStylesTabPage, ModifyHdl, void*, EMPTYARG) 4325cdf0e10cSrcweir { 4326cdf0e10cSrcweir SwMultiTOXTabDialog* pTOXDlg = (SwMultiTOXTabDialog*)GetTabDialog(); 4327cdf0e10cSrcweir if(pTOXDlg) 4328cdf0e10cSrcweir { 4329cdf0e10cSrcweir GetForm() = *m_pCurrentForm; 4330cdf0e10cSrcweir pTOXDlg->CreateOrUpdateExample(pTOXDlg->GetCurrentTOXType().eType, TOX_PAGE_STYLES); 4331cdf0e10cSrcweir } 4332cdf0e10cSrcweir return 0; 4333cdf0e10cSrcweir } 4334cdf0e10cSrcweir /****************************************************************************** 4335cdf0e10cSrcweir 4336cdf0e10cSrcweir ******************************************************************************/ 4337cdf0e10cSrcweir #define ITEM_SEARCH 1 4338cdf0e10cSrcweir #define ITEM_ALTERNATIVE 2 4339cdf0e10cSrcweir #define ITEM_PRIM_KEY 3 4340cdf0e10cSrcweir #define ITEM_SEC_KEY 4 4341cdf0e10cSrcweir #define ITEM_COMMENT 5 4342cdf0e10cSrcweir #define ITEM_CASE 6 4343cdf0e10cSrcweir #define ITEM_WORDONLY 7 4344cdf0e10cSrcweir 4345cdf0e10cSrcweir 4346cdf0e10cSrcweir SwEntryBrowseBox::SwEntryBrowseBox(Window* pParent, const ResId& rId, 4347cdf0e10cSrcweir BrowserMode nMode ) : 4348cdf0e10cSrcweir SwEntryBrowseBox_Base( pParent, rId, nMode, 4349cdf0e10cSrcweir BROWSER_KEEPSELECTION | 4350cdf0e10cSrcweir BROWSER_COLUMNSELECTION | 4351cdf0e10cSrcweir BROWSER_MULTISELECTION | 4352cdf0e10cSrcweir BROWSER_TRACKING_TIPS | 4353cdf0e10cSrcweir BROWSER_HLINESFULL | 4354cdf0e10cSrcweir BROWSER_VLINESFULL | 4355cdf0e10cSrcweir BROWSER_AUTO_VSCROLL| 4356cdf0e10cSrcweir BROWSER_HIDECURSOR ), 4357cdf0e10cSrcweir aCellEdit(&GetDataWindow(), 0), 4358cdf0e10cSrcweir aCellCheckBox(&GetDataWindow()), 4359cdf0e10cSrcweir 4360cdf0e10cSrcweir sSearch( ResId(ST_SEARCH, *rId.GetResMgr() )), 4361cdf0e10cSrcweir sAlternative( ResId(ST_ALTERNATIVE, *rId.GetResMgr() )), 4362cdf0e10cSrcweir sPrimKey( ResId(ST_PRIMKEY, *rId.GetResMgr() )), 4363cdf0e10cSrcweir sSecKey( ResId(ST_SECKEY, *rId.GetResMgr() )), 4364cdf0e10cSrcweir sComment( ResId(ST_COMMENT, *rId.GetResMgr() )), 4365cdf0e10cSrcweir sCaseSensitive( ResId(ST_CASESENSITIVE, *rId.GetResMgr() )), 4366cdf0e10cSrcweir sWordOnly( ResId(ST_WORDONLY, *rId.GetResMgr() )), 4367cdf0e10cSrcweir sYes( ResId(ST_TRUE, *rId.GetResMgr() )), 4368cdf0e10cSrcweir sNo( ResId(ST_FALSE, *rId.GetResMgr() )), 4369cdf0e10cSrcweir bModified(sal_False) 4370cdf0e10cSrcweir { 4371cdf0e10cSrcweir FreeResource(); 4372cdf0e10cSrcweir aCellCheckBox.GetBox().EnableTriState(sal_False); 4373cdf0e10cSrcweir xController = new ::svt::EditCellController(&aCellEdit); 4374cdf0e10cSrcweir xCheckController = new ::svt::CheckBoxCellController(&aCellCheckBox); 4375cdf0e10cSrcweir 4376cdf0e10cSrcweir ////////////////////////////////////////////////////////////////////// 4377cdf0e10cSrcweir // HACK: BrowseBox invalidiert nicht ihre Childs, wie es eigentlich sein sollte. 4378cdf0e10cSrcweir // Deshalb wird WB_CLIPCHILDREN zurueckgesetzt, wodurch das Invalidieren 4379cdf0e10cSrcweir // der Childs erzwungen wird. 4380cdf0e10cSrcweir WinBits aStyle = GetStyle(); 4381cdf0e10cSrcweir if( aStyle & WB_CLIPCHILDREN ) 4382cdf0e10cSrcweir { 4383cdf0e10cSrcweir aStyle &= ~WB_CLIPCHILDREN; 4384cdf0e10cSrcweir SetStyle( aStyle ); 4385cdf0e10cSrcweir } 4386cdf0e10cSrcweir const String* aTitles[7] = 4387cdf0e10cSrcweir { 4388cdf0e10cSrcweir &sSearch, 4389cdf0e10cSrcweir &sAlternative, 4390cdf0e10cSrcweir &sPrimKey, 4391cdf0e10cSrcweir &sSecKey, 4392cdf0e10cSrcweir &sComment, 4393cdf0e10cSrcweir &sCaseSensitive, 4394cdf0e10cSrcweir &sWordOnly 4395cdf0e10cSrcweir }; 4396cdf0e10cSrcweir 4397cdf0e10cSrcweir long nWidth = GetSizePixel().Width(); 4398cdf0e10cSrcweir nWidth /=7; 4399cdf0e10cSrcweir --nWidth; 4400cdf0e10cSrcweir for(sal_uInt16 i = 1; i < 8; i++) 4401cdf0e10cSrcweir InsertDataColumn( i, *aTitles[i - 1], nWidth, 4402cdf0e10cSrcweir HIB_STDSTYLE, HEADERBAR_APPEND ); 4403cdf0e10cSrcweir 4404cdf0e10cSrcweir } 4405cdf0e10cSrcweir /* -----------------------------19.01.00 11:29-------------------------------- 4406cdf0e10cSrcweir 4407cdf0e10cSrcweir ---------------------------------------------------------------------------*/ 4408cdf0e10cSrcweir sal_Bool SwEntryBrowseBox::SeekRow( long nRow ) 4409cdf0e10cSrcweir { 4410cdf0e10cSrcweir nCurrentRow = nRow; 4411cdf0e10cSrcweir return sal_True; 4412cdf0e10cSrcweir } 4413cdf0e10cSrcweir /* -----------------------------19.01.00 15:32-------------------------------- 4414cdf0e10cSrcweir 4415cdf0e10cSrcweir ---------------------------------------------------------------------------*/ 4416cdf0e10cSrcweir String SwEntryBrowseBox::GetCellText(long nRow, sal_uInt16 nColumn) const 4417cdf0e10cSrcweir { 4418cdf0e10cSrcweir const String* pRet = &aEmptyStr; 4419cdf0e10cSrcweir if(aEntryArr.Count() > nRow) 4420cdf0e10cSrcweir { 4421cdf0e10cSrcweir AutoMarkEntry* pEntry = aEntryArr[ static_cast< sal_uInt16 >(nRow) ]; 4422cdf0e10cSrcweir switch(nColumn) 4423cdf0e10cSrcweir { 4424cdf0e10cSrcweir case ITEM_SEARCH :pRet = &pEntry->sSearch; break; 4425cdf0e10cSrcweir case ITEM_ALTERNATIVE :pRet = &pEntry->sAlternative; break; 4426cdf0e10cSrcweir case ITEM_PRIM_KEY :pRet = &pEntry->sPrimKey ; break; 4427cdf0e10cSrcweir case ITEM_SEC_KEY :pRet = &pEntry->sSecKey ; break; 4428cdf0e10cSrcweir case ITEM_COMMENT :pRet = &pEntry->sComment ; break; 4429cdf0e10cSrcweir case ITEM_CASE :pRet = pEntry->bCase ? &sYes : &sNo; break; 4430cdf0e10cSrcweir case ITEM_WORDONLY :pRet = pEntry->bWord ? &sYes : &sNo; break; 4431cdf0e10cSrcweir } 4432cdf0e10cSrcweir } 4433cdf0e10cSrcweir return *pRet; 4434cdf0e10cSrcweir } 4435cdf0e10cSrcweir 4436cdf0e10cSrcweir /* -----------------------------19.01.00 11:29-------------------------------- 4437cdf0e10cSrcweir 4438cdf0e10cSrcweir ---------------------------------------------------------------------------*/ 4439cdf0e10cSrcweir void SwEntryBrowseBox::PaintCell(OutputDevice& rDev, 4440cdf0e10cSrcweir const Rectangle& rRect, sal_uInt16 nColumnId) const 4441cdf0e10cSrcweir { 4442cdf0e10cSrcweir String sPaint = GetCellText( nCurrentRow, nColumnId ); 4443cdf0e10cSrcweir sal_uInt16 nStyle = TEXT_DRAW_CLIP | TEXT_DRAW_CENTER; 4444cdf0e10cSrcweir rDev.DrawText( rRect, sPaint, nStyle ); 4445cdf0e10cSrcweir } 4446cdf0e10cSrcweir /* -----------------------------19.01.00 14:51-------------------------------- 4447cdf0e10cSrcweir 4448cdf0e10cSrcweir ---------------------------------------------------------------------------*/ 4449cdf0e10cSrcweir ::svt::CellController* SwEntryBrowseBox::GetController(long /*nRow*/, sal_uInt16 nCol) 4450cdf0e10cSrcweir { 4451cdf0e10cSrcweir return nCol < ITEM_CASE ? xController : xCheckController; 4452cdf0e10cSrcweir } 4453cdf0e10cSrcweir /* -----------------------------19.01.00 15:36-------------------------------- 4454cdf0e10cSrcweir 4455cdf0e10cSrcweir ---------------------------------------------------------------------------*/ 4456cdf0e10cSrcweir sal_Bool SwEntryBrowseBox::SaveModified() 4457cdf0e10cSrcweir { 4458cdf0e10cSrcweir SetModified(); 4459cdf0e10cSrcweir sal_uInt16 nRow = static_cast< sal_uInt16 >(GetCurRow()); 4460cdf0e10cSrcweir sal_uInt16 nCol = GetCurColumnId(); 4461cdf0e10cSrcweir 4462cdf0e10cSrcweir String sNew; 4463cdf0e10cSrcweir sal_Bool bVal = sal_False; 4464cdf0e10cSrcweir ::svt::CellController* pController = 0; 4465cdf0e10cSrcweir if(nCol < ITEM_CASE) 4466cdf0e10cSrcweir { 4467cdf0e10cSrcweir pController = xController; 4468cdf0e10cSrcweir sNew = ((::svt::EditCellController*)pController)->GetEditImplementation()->GetText( LINEEND_LF ); 4469cdf0e10cSrcweir } 4470cdf0e10cSrcweir else 4471cdf0e10cSrcweir { 4472cdf0e10cSrcweir pController = xCheckController; 4473cdf0e10cSrcweir bVal = ((::svt::CheckBoxCellController*)pController)->GetCheckBox().IsChecked(); 4474cdf0e10cSrcweir } 4475cdf0e10cSrcweir AutoMarkEntry* pEntry = nRow >= aEntryArr.Count() ? new AutoMarkEntry 4476cdf0e10cSrcweir : aEntryArr[nRow]; 4477cdf0e10cSrcweir switch(nCol) 4478cdf0e10cSrcweir { 4479cdf0e10cSrcweir case ITEM_SEARCH : pEntry->sSearch = sNew; break; 4480cdf0e10cSrcweir case ITEM_ALTERNATIVE : pEntry->sAlternative = sNew; break; 4481cdf0e10cSrcweir case ITEM_PRIM_KEY : pEntry->sPrimKey = sNew; break; 4482cdf0e10cSrcweir case ITEM_SEC_KEY : pEntry->sSecKey = sNew; break; 4483cdf0e10cSrcweir case ITEM_COMMENT : pEntry->sComment = sNew; break; 4484cdf0e10cSrcweir case ITEM_CASE : pEntry->bCase = bVal; break; 4485cdf0e10cSrcweir case ITEM_WORDONLY : pEntry->bWord = bVal; break; 4486cdf0e10cSrcweir } 4487cdf0e10cSrcweir if(nRow >= aEntryArr.Count()) 4488cdf0e10cSrcweir { 4489cdf0e10cSrcweir aEntryArr.Insert( pEntry, aEntryArr.Count() ); 4490cdf0e10cSrcweir RowInserted(nRow, 1, sal_True, sal_True); 4491cdf0e10cSrcweir if(nCol < ITEM_WORDONLY) 4492cdf0e10cSrcweir { 4493cdf0e10cSrcweir pController->ClearModified(); 4494cdf0e10cSrcweir GoToRow( nRow ); 4495cdf0e10cSrcweir } 4496cdf0e10cSrcweir } 4497cdf0e10cSrcweir return sal_True; 4498cdf0e10cSrcweir } 4499cdf0e10cSrcweir /* -----------------------------19.01.00 14:32-------------------------------- 4500cdf0e10cSrcweir 4501cdf0e10cSrcweir ---------------------------------------------------------------------------*/ 4502cdf0e10cSrcweir void SwEntryBrowseBox::InitController( 4503cdf0e10cSrcweir ::svt::CellControllerRef& rController, long nRow, sal_uInt16 nCol) 4504cdf0e10cSrcweir { 4505cdf0e10cSrcweir String rTxt = GetCellText( nRow, nCol ); 4506cdf0e10cSrcweir if(nCol < ITEM_CASE) 4507cdf0e10cSrcweir { 4508cdf0e10cSrcweir rController = xController; 4509cdf0e10cSrcweir ::svt::CellController* pController = xController; 4510cdf0e10cSrcweir ((::svt::EditCellController*)pController)->GetEditImplementation()->SetText( rTxt ); 4511cdf0e10cSrcweir } 4512cdf0e10cSrcweir else 4513cdf0e10cSrcweir { 4514cdf0e10cSrcweir rController = xCheckController; 4515cdf0e10cSrcweir ::svt::CellController* pController = xCheckController; 4516cdf0e10cSrcweir ((::svt::CheckBoxCellController*)pController)->GetCheckBox().Check( 4517cdf0e10cSrcweir rTxt == sYes ); 4518cdf0e10cSrcweir } 4519cdf0e10cSrcweir } 4520cdf0e10cSrcweir /* -----------------------------19.01.00 12:19-------------------------------- 4521cdf0e10cSrcweir 4522cdf0e10cSrcweir ---------------------------------------------------------------------------*/ 4523cdf0e10cSrcweir void SwEntryBrowseBox::ReadEntries(SvStream& rInStr) 4524cdf0e10cSrcweir { 4525cdf0e10cSrcweir AutoMarkEntry* pToInsert = 0; 4526cdf0e10cSrcweir const String sZero('0'); 4527cdf0e10cSrcweir rtl_TextEncoding eTEnc = gsl_getSystemTextEncoding(); 4528cdf0e10cSrcweir while( !rInStr.GetError() && !rInStr.IsEof() ) 4529cdf0e10cSrcweir { 4530cdf0e10cSrcweir String sLine; 4531cdf0e10cSrcweir rInStr.ReadByteStringLine( sLine, eTEnc ); 4532cdf0e10cSrcweir 4533cdf0e10cSrcweir // # -> comment 4534cdf0e10cSrcweir // ; -> delimiter between entries -> 4535cdf0e10cSrcweir // Format: TextToSearchFor;AlternativeString;PrimaryKey;SecondaryKey 4536cdf0e10cSrcweir // Leading and trailing blanks are ignored 4537cdf0e10cSrcweir if( sLine.Len() ) 4538cdf0e10cSrcweir { 4539cdf0e10cSrcweir //comments are contained in separate lines but are put into the struct of the following data 4540cdf0e10cSrcweir //line (if available) 4541cdf0e10cSrcweir if( '#' != sLine.GetChar(0) ) 4542cdf0e10cSrcweir { 4543cdf0e10cSrcweir if( !pToInsert ) 4544cdf0e10cSrcweir pToInsert = new AutoMarkEntry; 4545cdf0e10cSrcweir 4546cdf0e10cSrcweir sal_uInt16 nSttPos = 0; 4547cdf0e10cSrcweir pToInsert->sSearch = sLine.GetToken(0, ';', nSttPos ); 4548cdf0e10cSrcweir pToInsert->sAlternative = sLine.GetToken(0, ';', nSttPos ); 4549cdf0e10cSrcweir pToInsert->sPrimKey = sLine.GetToken(0, ';', nSttPos ); 4550cdf0e10cSrcweir pToInsert->sSecKey = sLine.GetToken(0, ';', nSttPos ); 4551cdf0e10cSrcweir 4552cdf0e10cSrcweir String sStr = sLine.GetToken(0, ';', nSttPos ); 4553cdf0e10cSrcweir pToInsert->bCase = sStr.Len() && sStr != sZero; 4554cdf0e10cSrcweir 4555cdf0e10cSrcweir sStr = sLine.GetToken(0, ';', nSttPos ); 4556cdf0e10cSrcweir pToInsert->bWord = sStr.Len() && sStr != sZero; 4557cdf0e10cSrcweir 4558cdf0e10cSrcweir aEntryArr.Insert( pToInsert, aEntryArr.Count() ); 4559cdf0e10cSrcweir pToInsert = 0; 4560cdf0e10cSrcweir } 4561cdf0e10cSrcweir else 4562cdf0e10cSrcweir { 4563cdf0e10cSrcweir if(pToInsert) 4564cdf0e10cSrcweir aEntryArr.Insert(pToInsert, aEntryArr.Count()); 4565cdf0e10cSrcweir pToInsert = new AutoMarkEntry; 4566cdf0e10cSrcweir pToInsert->sComment = sLine; 4567cdf0e10cSrcweir pToInsert->sComment.Erase(0, 1); 4568cdf0e10cSrcweir } 4569cdf0e10cSrcweir } 4570cdf0e10cSrcweir } 4571cdf0e10cSrcweir if( pToInsert ) 4572cdf0e10cSrcweir aEntryArr.Insert(pToInsert, aEntryArr.Count()); 4573cdf0e10cSrcweir RowInserted(0, aEntryArr.Count() + 1, sal_True); 4574cdf0e10cSrcweir } 4575cdf0e10cSrcweir /* -----------------------------19.01.00 12:19-------------------------------- 4576cdf0e10cSrcweir 4577cdf0e10cSrcweir ---------------------------------------------------------------------------*/ 4578cdf0e10cSrcweir void SwEntryBrowseBox::WriteEntries(SvStream& rOutStr) 4579cdf0e10cSrcweir { 4580cdf0e10cSrcweir //check if the current controller is modified 4581cdf0e10cSrcweir sal_uInt16 nCol = GetCurColumnId(); 4582cdf0e10cSrcweir ::svt::CellController* pController; 4583cdf0e10cSrcweir if(nCol < ITEM_CASE) 4584cdf0e10cSrcweir pController = xController; 4585cdf0e10cSrcweir else 4586cdf0e10cSrcweir pController = xCheckController; 4587cdf0e10cSrcweir if(pController ->IsModified()) 4588cdf0e10cSrcweir GoToColumnId(nCol < ITEM_CASE ? ++nCol : --nCol ); 4589cdf0e10cSrcweir 4590cdf0e10cSrcweir rtl_TextEncoding eTEnc = gsl_getSystemTextEncoding(); 4591cdf0e10cSrcweir for(sal_uInt16 i = 0; i < aEntryArr.Count();i++) 4592cdf0e10cSrcweir { 4593cdf0e10cSrcweir AutoMarkEntry* pEntry = aEntryArr[i]; 4594cdf0e10cSrcweir if(pEntry->sComment.Len()) 4595cdf0e10cSrcweir { 4596cdf0e10cSrcweir String sWrite('#'); 4597cdf0e10cSrcweir sWrite += pEntry->sComment; 4598cdf0e10cSrcweir rOutStr.WriteByteStringLine( sWrite, eTEnc ); 4599cdf0e10cSrcweir } 4600cdf0e10cSrcweir 4601cdf0e10cSrcweir String sWrite( pEntry->sSearch ); 4602cdf0e10cSrcweir sWrite += ';'; 4603cdf0e10cSrcweir sWrite += pEntry->sAlternative; 4604cdf0e10cSrcweir sWrite += ';'; 4605cdf0e10cSrcweir sWrite += pEntry->sPrimKey; 4606cdf0e10cSrcweir sWrite += ';'; 4607cdf0e10cSrcweir sWrite += pEntry->sSecKey; 4608cdf0e10cSrcweir sWrite += ';'; 4609cdf0e10cSrcweir sWrite += pEntry->bCase ? '1' : '0'; 4610cdf0e10cSrcweir sWrite += ';'; 4611cdf0e10cSrcweir sWrite += pEntry->bWord ? '1' : '0'; 4612cdf0e10cSrcweir 4613cdf0e10cSrcweir if( sWrite.Len() > 5 ) 4614cdf0e10cSrcweir rOutStr.WriteByteStringLine( sWrite, eTEnc ); 4615cdf0e10cSrcweir } 4616cdf0e10cSrcweir } 4617cdf0e10cSrcweir /* -----------------------------21.01.00 11:49-------------------------------- 4618cdf0e10cSrcweir 4619cdf0e10cSrcweir ---------------------------------------------------------------------------*/ 4620cdf0e10cSrcweir sal_Bool SwEntryBrowseBox::IsModified()const 4621cdf0e10cSrcweir { 4622cdf0e10cSrcweir if(bModified) 4623cdf0e10cSrcweir return sal_True; 4624cdf0e10cSrcweir 4625cdf0e10cSrcweir 4626cdf0e10cSrcweir //check if the current controller is modified 4627cdf0e10cSrcweir sal_uInt16 nCol = GetCurColumnId(); 4628cdf0e10cSrcweir ::svt::CellController* pController; 4629cdf0e10cSrcweir if(nCol < ITEM_CASE) 4630cdf0e10cSrcweir pController = xController; 4631cdf0e10cSrcweir else 4632cdf0e10cSrcweir pController = xCheckController; 4633cdf0e10cSrcweir return pController ->IsModified(); 4634cdf0e10cSrcweir } 4635cdf0e10cSrcweir /* -----------------------------19.01.00 11:29-------------------------------- 4636cdf0e10cSrcweir 4637cdf0e10cSrcweir ---------------------------------------------------------------------------*/ 4638cdf0e10cSrcweir SwAutoMarkDlg_Impl::SwAutoMarkDlg_Impl(Window* pParent, const String& rAutoMarkURL, 4639cdf0e10cSrcweir const String& rAutoMarkType, sal_Bool bCreate) : 4640cdf0e10cSrcweir ModalDialog(pParent, SW_RES(DLG_CREATE_AUTOMARK)), 4641cdf0e10cSrcweir aOKPB( this, SW_RES(PB_OK )), 4642cdf0e10cSrcweir aCancelPB( this, SW_RES(PB_CANCEL )), 4643cdf0e10cSrcweir aHelpPB( this, SW_RES(PB_HELP )), 4644cdf0e10cSrcweir aEntriesBB( this, SW_RES(BB_ENTRIES )), 4645cdf0e10cSrcweir aEntriesFL( this, SW_RES(FL_ENTRIES )), 4646cdf0e10cSrcweir sAutoMarkURL(rAutoMarkURL), 4647cdf0e10cSrcweir sAutoMarkType(rAutoMarkType), 4648cdf0e10cSrcweir bCreateMode(bCreate) 4649cdf0e10cSrcweir { 4650cdf0e10cSrcweir FreeResource(); 4651cdf0e10cSrcweir aOKPB.SetClickHdl(LINK(this, SwAutoMarkDlg_Impl, OkHdl)); 4652cdf0e10cSrcweir 4653cdf0e10cSrcweir String sTitle = GetText(); 4654cdf0e10cSrcweir sTitle.AppendAscii( RTL_CONSTASCII_STRINGPARAM(": ")); 4655cdf0e10cSrcweir sTitle += sAutoMarkURL; 4656cdf0e10cSrcweir SetText(sTitle); 4657cdf0e10cSrcweir sal_Bool bError = sal_False; 4658cdf0e10cSrcweir if( bCreateMode ) 4659cdf0e10cSrcweir aEntriesBB.RowInserted(0, 1, sal_True); 4660cdf0e10cSrcweir else 4661cdf0e10cSrcweir { 4662cdf0e10cSrcweir SfxMedium aMed( sAutoMarkURL, STREAM_STD_READ, sal_False ); 4663cdf0e10cSrcweir if( aMed.GetInStream() && !aMed.GetInStream()->GetError() ) 4664cdf0e10cSrcweir aEntriesBB.ReadEntries( *aMed.GetInStream() ); 4665cdf0e10cSrcweir else 4666cdf0e10cSrcweir bError = sal_True; 4667cdf0e10cSrcweir } 4668cdf0e10cSrcweir 4669cdf0e10cSrcweir if(bError) 4670cdf0e10cSrcweir EndDialog(RET_CANCEL); 4671cdf0e10cSrcweir } 4672cdf0e10cSrcweir /* -----------------------------19.01.00 11:12-------------------------------- 4673cdf0e10cSrcweir 4674cdf0e10cSrcweir ---------------------------------------------------------------------------*/ 4675cdf0e10cSrcweir SwAutoMarkDlg_Impl::~SwAutoMarkDlg_Impl() 4676cdf0e10cSrcweir { 4677cdf0e10cSrcweir } 4678cdf0e10cSrcweir /* -----------------------------19.01.00 16:43-------------------------------- 4679cdf0e10cSrcweir 4680cdf0e10cSrcweir ---------------------------------------------------------------------------*/ 4681cdf0e10cSrcweir IMPL_LINK(SwAutoMarkDlg_Impl, OkHdl, OKButton*, EMPTYARG) 4682cdf0e10cSrcweir { 4683cdf0e10cSrcweir sal_Bool bError = sal_False; 4684cdf0e10cSrcweir if(aEntriesBB.IsModified() || bCreateMode) 4685cdf0e10cSrcweir { 4686cdf0e10cSrcweir SfxMedium aMed( sAutoMarkURL, 4687cdf0e10cSrcweir bCreateMode ? STREAM_WRITE 4688cdf0e10cSrcweir : STREAM_WRITE| STREAM_TRUNC, 4689cdf0e10cSrcweir sal_False ); 4690cdf0e10cSrcweir SvStream* pStrm = aMed.GetOutStream(); 4691cdf0e10cSrcweir pStrm->SetStreamCharSet( RTL_TEXTENCODING_MS_1253 ); 4692cdf0e10cSrcweir if( !pStrm->GetError() ) 4693cdf0e10cSrcweir { 4694cdf0e10cSrcweir aEntriesBB.WriteEntries( *pStrm ); 4695cdf0e10cSrcweir aMed.Commit(); 4696cdf0e10cSrcweir } 4697cdf0e10cSrcweir else 4698cdf0e10cSrcweir bError = sal_True; 4699cdf0e10cSrcweir } 4700cdf0e10cSrcweir if( !bError ) 4701cdf0e10cSrcweir EndDialog(RET_OK); 4702cdf0e10cSrcweir return 0; 4703cdf0e10cSrcweir } 4704cdf0e10cSrcweir 4705