1*efeef26fSAndrew Rist /************************************************************** 2cdf0e10cSrcweir * 3*efeef26fSAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 4*efeef26fSAndrew Rist * or more contributor license agreements. See the NOTICE file 5*efeef26fSAndrew Rist * distributed with this work for additional information 6*efeef26fSAndrew Rist * regarding copyright ownership. The ASF licenses this file 7*efeef26fSAndrew Rist * to you under the Apache License, Version 2.0 (the 8*efeef26fSAndrew Rist * "License"); you may not use this file except in compliance 9*efeef26fSAndrew Rist * with the License. You may obtain a copy of the License at 10cdf0e10cSrcweir * 11*efeef26fSAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 12cdf0e10cSrcweir * 13*efeef26fSAndrew Rist * Unless required by applicable law or agreed to in writing, 14*efeef26fSAndrew Rist * software distributed under the License is distributed on an 15*efeef26fSAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*efeef26fSAndrew Rist * KIND, either express or implied. See the License for the 17*efeef26fSAndrew Rist * specific language governing permissions and limitations 18*efeef26fSAndrew Rist * under the License. 19cdf0e10cSrcweir * 20*efeef26fSAndrew Rist *************************************************************/ 21*efeef26fSAndrew Rist 22*efeef26fSAndrew Rist 23cdf0e10cSrcweir 24cdf0e10cSrcweir // MARKER(update_precomp.py): autogen include statement, do not remove 25cdf0e10cSrcweir #include "precompiled_sw.hxx" 26cdf0e10cSrcweir 27cdf0e10cSrcweir #ifdef SW_DLLIMPLEMENTATION 28cdf0e10cSrcweir #undef SW_DLLIMPLEMENTATION 29cdf0e10cSrcweir #endif 30cdf0e10cSrcweir 31cdf0e10cSrcweir 32cdf0e10cSrcweir #include <svl/style.hxx> 33cdf0e10cSrcweir #include <errhdl.hxx> 34cdf0e10cSrcweir #include <wrtsh.hxx> 35cdf0e10cSrcweir #ifndef _VIEW_HXX 36cdf0e10cSrcweir #include <view.hxx> 37cdf0e10cSrcweir #endif 38cdf0e10cSrcweir #ifndef _DOCSH_HXX 39cdf0e10cSrcweir #include <docsh.hxx> 40cdf0e10cSrcweir #endif 41cdf0e10cSrcweir #include <docfnote.hxx> 42cdf0e10cSrcweir #include <impfnote.hxx> 43cdf0e10cSrcweir #include <ftninfo.hxx> 44cdf0e10cSrcweir #include <fmtcol.hxx> 45cdf0e10cSrcweir #include <pagedesc.hxx> 46cdf0e10cSrcweir #include <charfmt.hxx> 47cdf0e10cSrcweir #include <docstyle.hxx> 48cdf0e10cSrcweir #include <wdocsh.hxx> 49cdf0e10cSrcweir #include <uitool.hxx> 50cdf0e10cSrcweir #include <poolfmt.hxx> 51cdf0e10cSrcweir #include <swstyle.h> 52cdf0e10cSrcweir #ifndef _HELPID_H 53cdf0e10cSrcweir #include <helpid.h> 54cdf0e10cSrcweir #endif 55cdf0e10cSrcweir #ifndef _MISC_HRC 56cdf0e10cSrcweir #include <misc.hrc> 57cdf0e10cSrcweir #endif 58cdf0e10cSrcweir #ifndef _DOCFNOTE_HRC 59cdf0e10cSrcweir #include <docfnote.hrc> 60cdf0e10cSrcweir #endif 61cdf0e10cSrcweir #ifndef _FRMUI_HRC 62cdf0e10cSrcweir #include <frmui.hrc> 63cdf0e10cSrcweir #endif 64cdf0e10cSrcweir #include <SwStyleNameMapper.hxx> 65cdf0e10cSrcweir 66cdf0e10cSrcweir SwFootNoteOptionDlg::SwFootNoteOptionDlg( Window *pParent, SwWrtShell &rS ) : 67cdf0e10cSrcweir SfxTabDialog( pParent, SW_RES(DLG_DOC_FOOTNOTE) ), 68cdf0e10cSrcweir rSh( rS ) 69cdf0e10cSrcweir { 70cdf0e10cSrcweir FreeResource(); 71cdf0e10cSrcweir RemoveResetButton(); 72cdf0e10cSrcweir 73cdf0e10cSrcweir aOldOkHdl = GetOKButton().GetClickHdl(); 74cdf0e10cSrcweir GetOKButton().SetClickHdl( LINK( this, SwFootNoteOptionDlg, OkHdl ) ); 75cdf0e10cSrcweir 76cdf0e10cSrcweir AddTabPage( TP_FOOTNOTEOPTION, SwFootNoteOptionPage::Create, 0 ); 77cdf0e10cSrcweir AddTabPage( TP_ENDNOTEOPTION, SwEndNoteOptionPage::Create, 0 ); 78cdf0e10cSrcweir } 79cdf0e10cSrcweir 80cdf0e10cSrcweir void SwFootNoteOptionDlg::PageCreated( sal_uInt16 /*nId*/, SfxTabPage &rPage ) 81cdf0e10cSrcweir { 82cdf0e10cSrcweir ((SwEndNoteOptionPage&)rPage).SetShell( rSh ); 83cdf0e10cSrcweir } 84cdf0e10cSrcweir 85cdf0e10cSrcweir SwFootNoteOptionDlg::~SwFootNoteOptionDlg() 86cdf0e10cSrcweir { 87cdf0e10cSrcweir } 88cdf0e10cSrcweir 89cdf0e10cSrcweir IMPL_LINK( SwFootNoteOptionDlg, OkHdl, Button *, pBtn ) 90cdf0e10cSrcweir { 91cdf0e10cSrcweir SfxItemSet aDummySet(rSh.GetAttrPool(), 1, 1 ); 92cdf0e10cSrcweir SfxTabPage *pPage = GetTabPage( TP_FOOTNOTEOPTION ); 93cdf0e10cSrcweir if ( pPage ) 94cdf0e10cSrcweir pPage->FillItemSet( aDummySet ); 95cdf0e10cSrcweir pPage = GetTabPage( TP_ENDNOTEOPTION ); 96cdf0e10cSrcweir if ( pPage ) 97cdf0e10cSrcweir pPage->FillItemSet( aDummySet ); 98cdf0e10cSrcweir aOldOkHdl.Call( pBtn ); 99cdf0e10cSrcweir return 0; 100cdf0e10cSrcweir } 101cdf0e10cSrcweir 102cdf0e10cSrcweir 103cdf0e10cSrcweir //---------------------------------------------------------------------- 104cdf0e10cSrcweir 105cdf0e10cSrcweir 106cdf0e10cSrcweir SwEndNoteOptionPage::SwEndNoteOptionPage( Window *pParent, sal_Bool bEN, 107cdf0e10cSrcweir const SfxItemSet &rSet ) : 108cdf0e10cSrcweir SfxTabPage( pParent, SW_RES(bEN ? TP_ENDNOTEOPTION : TP_FOOTNOTEOPTION), rSet ), 109cdf0e10cSrcweir aNumFL (this, SW_RES( FL_NUM )), 110cdf0e10cSrcweir 111cdf0e10cSrcweir aNumTypeFT (this, SW_RES( FT_NUMTYPE )), 112cdf0e10cSrcweir aNumViewBox (this, SW_RES( LB_NUMVIEW ), INSERT_NUM_EXTENDED_TYPES), 113cdf0e10cSrcweir aOffsetLbl (this, SW_RES( FT_OFFSET )), 114cdf0e10cSrcweir aOffsetFld (this, SW_RES( FLD_OFFSET )), 115cdf0e10cSrcweir aNumCountFT (this, SW_RES( FT_NUMCOUNT )), 116cdf0e10cSrcweir aNumCountBox (this, SW_RES( LB_NUMCOUNT )), 117cdf0e10cSrcweir aPrefixFT (this, SW_RES( FT_PREFIX )), 118cdf0e10cSrcweir aPrefixED (this, SW_RES( ED_PREFIX )), 119cdf0e10cSrcweir aSuffixFT (this, SW_RES( FT_SUFFIX )), 120cdf0e10cSrcweir aSuffixED (this, SW_RES( ED_SUFFIX )), 121cdf0e10cSrcweir aPosFT (this, SW_RES( FT_POS )), 122cdf0e10cSrcweir aPosPageBox (this, SW_RES( RB_POS_PAGE )), 123cdf0e10cSrcweir aPosChapterBox (this, SW_RES( RB_POS_CHAPTER)), 124cdf0e10cSrcweir 125cdf0e10cSrcweir aTemplFL (this, SW_RES( FL_TEMPL )), 126cdf0e10cSrcweir aParaTemplLbl (this, SW_RES( FT_PARA_TEMPL)), 127cdf0e10cSrcweir aParaTemplBox (this, SW_RES( LB_PARA_TEMPL)), 128cdf0e10cSrcweir aPageTemplLbl (this, SW_RES( FT_PAGE_TEMPL)), 129cdf0e10cSrcweir aPageTemplBox (this, SW_RES( LB_PAGE_TEMPL)), 130cdf0e10cSrcweir 131cdf0e10cSrcweir aCharTemplFL( this, SW_RES(FL_CHAR_TEMPL)), 132cdf0e10cSrcweir aFtnCharAnchorTemplLbl( this, SW_RES( FT_ANCHR_CHARFMT)), 133cdf0e10cSrcweir aFtnCharAnchorTemplBox( this, SW_RES( LB_ANCHR_CHARFMT)), 134cdf0e10cSrcweir aFtnCharTextTemplLbl( this, SW_RES( FT_TEXT_CHARFMT)), 135cdf0e10cSrcweir aFtnCharTextTemplBox( this, SW_RES( LB_TEXT_CHARFMT)), 136cdf0e10cSrcweir 137cdf0e10cSrcweir aContFL (this, SW_RES( FL_CONT )), 138cdf0e10cSrcweir aContLbl (this, SW_RES( FT_CONT )), 139cdf0e10cSrcweir aContEdit (this, SW_RES( ED_CONT )), 140cdf0e10cSrcweir aContFromLbl (this, SW_RES( FT_CONT_FROM )), 141cdf0e10cSrcweir aContFromEdit (this, SW_RES( ED_CONT_FROM )), 142cdf0e10cSrcweir 143cdf0e10cSrcweir aNumDoc(aNumCountBox.GetEntry(FTNNUM_DOC)), 144cdf0e10cSrcweir aNumPage(aNumCountBox.GetEntry(FTNNUM_PAGE)), 145cdf0e10cSrcweir aNumChapter(aNumCountBox.GetEntry(FTNNUM_CHAPTER)), 146cdf0e10cSrcweir pSh( 0 ), 147cdf0e10cSrcweir bPosDoc(sal_False), 148cdf0e10cSrcweir bEndNote( bEN ) 149cdf0e10cSrcweir { 150cdf0e10cSrcweir FreeResource(); 151cdf0e10cSrcweir 152cdf0e10cSrcweir aPosPageBox.SetClickHdl(LINK(this, SwEndNoteOptionPage, PosPageHdl)); 153cdf0e10cSrcweir aPosChapterBox.SetClickHdl(LINK(this, SwEndNoteOptionPage, PosChapterHdl)); 154cdf0e10cSrcweir aNumCountBox.SetSelectHdl(LINK(this, SwEndNoteOptionPage, NumCountHdl)); 155cdf0e10cSrcweir 156cdf0e10cSrcweir aPosPageBox.SetAccessibleRelationMemberOf(&aPosFT); 157cdf0e10cSrcweir aPosChapterBox.SetAccessibleRelationMemberOf(&aPosFT); 158cdf0e10cSrcweir } 159cdf0e10cSrcweir 160cdf0e10cSrcweir void SwEndNoteOptionPage::Reset( const SfxItemSet& ) 161cdf0e10cSrcweir { 162cdf0e10cSrcweir SwEndNoteInfo *pInf = bEndNote ? new SwEndNoteInfo( pSh->GetEndNoteInfo() ) 163cdf0e10cSrcweir : new SwFtnInfo( pSh->GetFtnInfo() ); 164cdf0e10cSrcweir SfxObjectShell * pDocSh = SfxObjectShell::Current(); 165cdf0e10cSrcweir sal_uInt16 i; 166cdf0e10cSrcweir 167cdf0e10cSrcweir if(PTR_CAST(SwWebDocShell, pDocSh)) 168cdf0e10cSrcweir { 169cdf0e10cSrcweir aParaTemplLbl .Hide(); 170cdf0e10cSrcweir aParaTemplBox .Hide(); 171cdf0e10cSrcweir aPageTemplLbl .Hide(); 172cdf0e10cSrcweir aPageTemplBox .Hide(); 173cdf0e10cSrcweir aFtnCharTextTemplLbl.Hide(); 174cdf0e10cSrcweir aFtnCharTextTemplBox.Hide(); 175cdf0e10cSrcweir aFtnCharAnchorTemplLbl.Hide(); 176cdf0e10cSrcweir aFtnCharAnchorTemplBox.Hide(); 177cdf0e10cSrcweir aCharTemplFL .Hide(); 178cdf0e10cSrcweir aTemplFL .Hide(); 179cdf0e10cSrcweir } 180cdf0e10cSrcweir if ( bEndNote ) 181cdf0e10cSrcweir { 182cdf0e10cSrcweir aPosPageBox.Hide(); 183cdf0e10cSrcweir aPosChapterBox.Hide(); 184cdf0e10cSrcweir aNumCountBox.Hide(); 185cdf0e10cSrcweir aContLbl.Hide(); 186cdf0e10cSrcweir aContEdit.Hide(); 187cdf0e10cSrcweir aContFromLbl.Hide(); 188cdf0e10cSrcweir aContFromEdit.Hide(); 189cdf0e10cSrcweir aContFL.Hide(); 190cdf0e10cSrcweir bPosDoc = sal_True; 191cdf0e10cSrcweir } 192cdf0e10cSrcweir else 193cdf0e10cSrcweir { 194cdf0e10cSrcweir const SwFtnInfo &rInf = pSh->GetFtnInfo(); 195cdf0e10cSrcweir // Position (Seite, Kapitel) setzen 196cdf0e10cSrcweir if ( rInf.ePos == FTNPOS_PAGE ) 197cdf0e10cSrcweir { 198cdf0e10cSrcweir aPosPageBox.Check(); 199cdf0e10cSrcweir aPageTemplLbl.Enable(sal_False); 200cdf0e10cSrcweir aPageTemplBox.Enable(sal_False); 201cdf0e10cSrcweir } 202cdf0e10cSrcweir else // if ( rInf.ePos == FTNPOS_CHAPTER ) 203cdf0e10cSrcweir { 204cdf0e10cSrcweir aPosChapterBox.Check(); 205cdf0e10cSrcweir aNumCountBox.RemoveEntry(aNumPage); 206cdf0e10cSrcweir aNumCountBox.RemoveEntry(aNumChapter); 207cdf0e10cSrcweir bPosDoc = sal_True; 208cdf0e10cSrcweir } 209cdf0e10cSrcweir // Verweistexte 210cdf0e10cSrcweir aContEdit.SetText(rInf.aQuoVadis); 211cdf0e10cSrcweir aContFromEdit.SetText(rInf.aErgoSum); 212cdf0e10cSrcweir 213cdf0e10cSrcweir // gesammelt wo 214cdf0e10cSrcweir SelectNumbering(rInf.eNum); 215cdf0e10cSrcweir } 216cdf0e10cSrcweir 217cdf0e10cSrcweir // Numerierung 218cdf0e10cSrcweir // Art 219cdf0e10cSrcweir aNumViewBox.SelectNumberingType( pInf->aFmt.GetNumberingType()); 220cdf0e10cSrcweir aOffsetFld.SetValue(pInf->nFtnOffset + 1); 221cdf0e10cSrcweir aPrefixED.SetText(pInf->GetPrefix()); 222cdf0e10cSrcweir aSuffixED.SetText(pInf->GetSuffix()); 223cdf0e10cSrcweir 224cdf0e10cSrcweir const SwCharFmt* pCharFmt = pInf->GetCharFmt( 225cdf0e10cSrcweir *pSh->GetView().GetDocShell()->GetDoc()); 226cdf0e10cSrcweir aFtnCharTextTemplBox.SelectEntry(pCharFmt->GetName()); 227cdf0e10cSrcweir aFtnCharTextTemplBox.SaveValue(); 228cdf0e10cSrcweir 229cdf0e10cSrcweir pCharFmt = pInf->GetAnchorCharFmt( *pSh->GetDoc() ); 230cdf0e10cSrcweir aFtnCharAnchorTemplBox.SelectEntry( pCharFmt->GetName() ); 231cdf0e10cSrcweir aFtnCharAnchorTemplBox.SaveValue(); 232cdf0e10cSrcweir 233cdf0e10cSrcweir // Vorlagen - Sonderbereiche 234cdf0e10cSrcweir // Absatz 235cdf0e10cSrcweir SfxStyleSheetBasePool* pStyleSheetPool = pSh->GetView().GetDocShell()->GetStyleSheetPool(); 236cdf0e10cSrcweir pStyleSheetPool->SetSearchMask(SFX_STYLE_FAMILY_PARA, SWSTYLEBIT_EXTRA); 237cdf0e10cSrcweir SfxStyleSheetBase *pStyle = pStyleSheetPool->First(); 238cdf0e10cSrcweir while(pStyle) 239cdf0e10cSrcweir { 240cdf0e10cSrcweir aParaTemplBox.InsertEntry(pStyle->GetName()); 241cdf0e10cSrcweir pStyle = pStyleSheetPool->Next(); 242cdf0e10cSrcweir } 243cdf0e10cSrcweir 244cdf0e10cSrcweir String sStr; 245cdf0e10cSrcweir SwStyleNameMapper::FillUIName( static_cast< sal_uInt16 >(bEndNote ? RES_POOLCOLL_ENDNOTE 246cdf0e10cSrcweir : RES_POOLCOLL_FOOTNOTE), sStr ); 247cdf0e10cSrcweir if(LISTBOX_ENTRY_NOTFOUND == aParaTemplBox.GetEntryPos( sStr ) ) 248cdf0e10cSrcweir aParaTemplBox.InsertEntry( sStr ); 249cdf0e10cSrcweir 250cdf0e10cSrcweir SwTxtFmtColl* pColl = pInf->GetFtnTxtColl(); 251cdf0e10cSrcweir if( !pColl ) 252cdf0e10cSrcweir aParaTemplBox.SelectEntry( sStr ); // Default 253cdf0e10cSrcweir else 254cdf0e10cSrcweir { 255cdf0e10cSrcweir ASSERT(!pColl->IsDefault(), "Defaultvorlage fuer Fussnoten ist falsch."); 256cdf0e10cSrcweir const sal_uInt16 nPos = aParaTemplBox.GetEntryPos(pColl->GetName()); 257cdf0e10cSrcweir if( LISTBOX_ENTRY_NOTFOUND != nPos ) 258cdf0e10cSrcweir aParaTemplBox.SelectEntryPos( nPos ); 259cdf0e10cSrcweir else 260cdf0e10cSrcweir { 261cdf0e10cSrcweir aParaTemplBox.InsertEntry(pColl->GetName()); 262cdf0e10cSrcweir aParaTemplBox.SelectEntry(pColl->GetName()); 263cdf0e10cSrcweir } 264cdf0e10cSrcweir } 265cdf0e10cSrcweir 266cdf0e10cSrcweir // Seite 267cdf0e10cSrcweir for( i = RES_POOLPAGE_BEGIN; i < RES_POOLPAGE_END; ++i ) 268cdf0e10cSrcweir aPageTemplBox.InsertEntry(SwStyleNameMapper::GetUIName( i, aEmptyStr )); 269cdf0e10cSrcweir 270cdf0e10cSrcweir sal_uInt16 nCount = pSh->GetPageDescCnt(); 271cdf0e10cSrcweir for(i = 0; i < nCount; ++i) 272cdf0e10cSrcweir { 273cdf0e10cSrcweir const SwPageDesc &rPageDesc = pSh->GetPageDesc(i); 274cdf0e10cSrcweir if(LISTBOX_ENTRY_NOTFOUND == aPageTemplBox.GetEntryPos(rPageDesc.GetName())) 275cdf0e10cSrcweir aPageTemplBox.InsertEntry(rPageDesc.GetName()); 276cdf0e10cSrcweir } 277cdf0e10cSrcweir 278cdf0e10cSrcweir aPageTemplBox.SelectEntry( pInf->GetPageDesc( *pSh->GetDoc() )->GetName()); 279cdf0e10cSrcweir delete pInf; 280cdf0e10cSrcweir } 281cdf0e10cSrcweir 282cdf0e10cSrcweir SwEndNoteOptionPage::~SwEndNoteOptionPage() 283cdf0e10cSrcweir { 284cdf0e10cSrcweir } 285cdf0e10cSrcweir 286cdf0e10cSrcweir SfxTabPage *SwEndNoteOptionPage::Create( Window *pParent, const SfxItemSet &rSet ) 287cdf0e10cSrcweir { 288cdf0e10cSrcweir return new SwEndNoteOptionPage( pParent, sal_True, rSet ); 289cdf0e10cSrcweir } 290cdf0e10cSrcweir 291cdf0e10cSrcweir /*------------------------------------------------------------------------ 292cdf0e10cSrcweir Beschreibung: Unterschiedliche Arten der Numerierung; da die Listbox 293cdf0e10cSrcweir unterschiedlich viele Eintraege hat, hier Funktionen 294cdf0e10cSrcweir fuer das Setzen und Erfragen der gemeinten Art 295cdf0e10cSrcweir der Numerierung. 296cdf0e10cSrcweir ------------------------------------------------------------------------*/ 297cdf0e10cSrcweir void SwEndNoteOptionPage::SelectNumbering(int eNum) 298cdf0e10cSrcweir { 299cdf0e10cSrcweir String sSelect; 300cdf0e10cSrcweir switch(eNum) 301cdf0e10cSrcweir { 302cdf0e10cSrcweir case FTNNUM_DOC: 303cdf0e10cSrcweir sSelect = aNumDoc; 304cdf0e10cSrcweir break; 305cdf0e10cSrcweir case FTNNUM_PAGE: 306cdf0e10cSrcweir sSelect = aNumPage; 307cdf0e10cSrcweir break; 308cdf0e10cSrcweir case FTNNUM_CHAPTER: 309cdf0e10cSrcweir sSelect = aNumChapter; 310cdf0e10cSrcweir break; 311cdf0e10cSrcweir #ifdef DBG_UTIL 312cdf0e10cSrcweir default: 313cdf0e10cSrcweir DBG_ERROR("Which numbering type?"); 314cdf0e10cSrcweir #endif 315cdf0e10cSrcweir } 316cdf0e10cSrcweir aNumCountBox.SelectEntry(sSelect); 317cdf0e10cSrcweir NumCountHdl( &aNumCountBox ); 318cdf0e10cSrcweir } 319cdf0e10cSrcweir 320cdf0e10cSrcweir 321cdf0e10cSrcweir 322cdf0e10cSrcweir int SwEndNoteOptionPage::GetNumbering() const 323cdf0e10cSrcweir { 324cdf0e10cSrcweir const sal_uInt16 nPos = aNumCountBox.GetSelectEntryPos(); 325cdf0e10cSrcweir return (int) bPosDoc? nPos + 1: nPos; 326cdf0e10cSrcweir } 327cdf0e10cSrcweir 328cdf0e10cSrcweir /*-----------------09.02.98 11:17------------------- 329cdf0e10cSrcweir 330cdf0e10cSrcweir --------------------------------------------------*/ 331cdf0e10cSrcweir void SwEndNoteOptionPage::SetShell( SwWrtShell &rShell ) 332cdf0e10cSrcweir { 333cdf0e10cSrcweir pSh = &rShell; 334cdf0e10cSrcweir // Zeichenvorlagen sammeln 335cdf0e10cSrcweir aFtnCharTextTemplBox.Clear(); 336cdf0e10cSrcweir aFtnCharAnchorTemplBox.Clear(); 337cdf0e10cSrcweir ::FillCharStyleListBox(aFtnCharTextTemplBox, 338cdf0e10cSrcweir pSh->GetView().GetDocShell()); 339cdf0e10cSrcweir 340cdf0e10cSrcweir ::FillCharStyleListBox(aFtnCharAnchorTemplBox, 341cdf0e10cSrcweir pSh->GetView().GetDocShell()); 342cdf0e10cSrcweir } 343cdf0e10cSrcweir 344cdf0e10cSrcweir /*------------------------------------------------------------------------ 345cdf0e10cSrcweir Beschreibung: Handler hinter dem Button fuer Sammeln der Fussnote 346cdf0e10cSrcweir auf der Seite. 347cdf0e10cSrcweir In diesem Fall koennen alle Numerierungsarten verwendet 348cdf0e10cSrcweir werden. 349cdf0e10cSrcweir ------------------------------------------------------------------------*/ 350cdf0e10cSrcweir 351cdf0e10cSrcweir 352cdf0e10cSrcweir IMPL_LINK( SwEndNoteOptionPage, PosPageHdl, Button *, EMPTYARG ) 353cdf0e10cSrcweir { 354cdf0e10cSrcweir const SwFtnNum eNum = (const SwFtnNum)GetNumbering(); 355cdf0e10cSrcweir bPosDoc = sal_False; 356cdf0e10cSrcweir if(LISTBOX_ENTRY_NOTFOUND == aNumCountBox.GetEntryPos(aNumPage)) 357cdf0e10cSrcweir { 358cdf0e10cSrcweir aNumCountBox.InsertEntry(aNumPage, FTNNUM_PAGE); 359cdf0e10cSrcweir aNumCountBox.InsertEntry(aNumChapter, FTNNUM_CHAPTER); 360cdf0e10cSrcweir SelectNumbering(eNum); 361cdf0e10cSrcweir } 362cdf0e10cSrcweir aPageTemplLbl.Enable(sal_False); 363cdf0e10cSrcweir aPageTemplBox.Enable(sal_False); 364cdf0e10cSrcweir 365cdf0e10cSrcweir return 0; 366cdf0e10cSrcweir } 367cdf0e10cSrcweir 368cdf0e10cSrcweir /*------------------------------------------------------------------------ 369cdf0e10cSrcweir Beschreibung: 370cdf0e10cSrcweir ------------------------------------------------------------------------*/ 371cdf0e10cSrcweir 372cdf0e10cSrcweir 373cdf0e10cSrcweir IMPL_LINK( SwEndNoteOptionPage, NumCountHdl, ListBox*, EMPTYARG ) 374cdf0e10cSrcweir { 375cdf0e10cSrcweir sal_Bool bEnable = sal_True; 376cdf0e10cSrcweir if( aNumCountBox.GetEntryCount() - 1 != aNumCountBox.GetSelectEntryPos() ) 377cdf0e10cSrcweir { 378cdf0e10cSrcweir bEnable = sal_False; 379cdf0e10cSrcweir aOffsetFld.SetValue(1); 380cdf0e10cSrcweir } 381cdf0e10cSrcweir aOffsetLbl.Enable(bEnable); 382cdf0e10cSrcweir aOffsetFld.Enable(bEnable); 383cdf0e10cSrcweir return 0; 384cdf0e10cSrcweir } 385cdf0e10cSrcweir 386cdf0e10cSrcweir /*------------------------------------------------------------------------ 387cdf0e10cSrcweir Beschreibung: Handler hinter dem Button fuer Sammeln der Fussnote 388cdf0e10cSrcweir am Kapitel oder Dokumentende. 389cdf0e10cSrcweir In diesem Fall kann keine seitenweise Numerierung verwendet 390cdf0e10cSrcweir werden. 391cdf0e10cSrcweir ------------------------------------------------------------------------*/ 392cdf0e10cSrcweir 393cdf0e10cSrcweir 394cdf0e10cSrcweir IMPL_LINK_INLINE_START( SwEndNoteOptionPage, PosChapterHdl, Button *, EMPTYARG ) 395cdf0e10cSrcweir { 396cdf0e10cSrcweir if ( !bPosDoc ) 397cdf0e10cSrcweir SelectNumbering(FTNNUM_DOC); 398cdf0e10cSrcweir 399cdf0e10cSrcweir bPosDoc = sal_True; 400cdf0e10cSrcweir aNumCountBox.RemoveEntry(aNumPage); 401cdf0e10cSrcweir aNumCountBox.RemoveEntry(aNumChapter); 402cdf0e10cSrcweir aPageTemplLbl.Enable(); 403cdf0e10cSrcweir aPageTemplBox.Enable(); 404cdf0e10cSrcweir return 0; 405cdf0e10cSrcweir } 406cdf0e10cSrcweir IMPL_LINK_INLINE_END( SwEndNoteOptionPage, PosChapterHdl, Button *, EMPTYARG ) 407cdf0e10cSrcweir 408cdf0e10cSrcweir SwCharFmt* lcl_GetCharFormat( SwWrtShell* pSh, const String& rCharFmtName ) 409cdf0e10cSrcweir { 410cdf0e10cSrcweir SwCharFmt* pFmt = 0; 411cdf0e10cSrcweir sal_uInt16 nChCount = pSh->GetCharFmtCount(); 412cdf0e10cSrcweir for(sal_uInt16 i = 0; i< nChCount; i++) 413cdf0e10cSrcweir { 414cdf0e10cSrcweir SwCharFmt& rChFmt = pSh->GetCharFmt(i); 415cdf0e10cSrcweir if(rChFmt.GetName() == rCharFmtName ) 416cdf0e10cSrcweir { 417cdf0e10cSrcweir pFmt = &rChFmt; 418cdf0e10cSrcweir break; 419cdf0e10cSrcweir } 420cdf0e10cSrcweir } 421cdf0e10cSrcweir if(!pFmt) 422cdf0e10cSrcweir { 423cdf0e10cSrcweir SfxStyleSheetBasePool* pPool = pSh->GetView().GetDocShell()->GetStyleSheetPool(); 424cdf0e10cSrcweir SfxStyleSheetBase* pBase; 425cdf0e10cSrcweir pBase = pPool->Find(rCharFmtName, SFX_STYLE_FAMILY_CHAR); 426cdf0e10cSrcweir if(!pBase) 427cdf0e10cSrcweir pBase = &pPool->Make(rCharFmtName, SFX_STYLE_FAMILY_CHAR); 428cdf0e10cSrcweir pFmt = ((SwDocStyleSheet*)pBase)->GetCharFmt(); 429cdf0e10cSrcweir } 430cdf0e10cSrcweir return pFmt; 431cdf0e10cSrcweir } 432cdf0e10cSrcweir 433cdf0e10cSrcweir sal_Bool SwEndNoteOptionPage::FillItemSet( SfxItemSet & ) 434cdf0e10cSrcweir { 435cdf0e10cSrcweir SwEndNoteInfo *pInf = bEndNote ? new SwEndNoteInfo() : new SwFtnInfo(); 436cdf0e10cSrcweir 437cdf0e10cSrcweir pInf->nFtnOffset = static_cast< sal_uInt16 >(aOffsetFld.GetValue() -1); 438cdf0e10cSrcweir pInf->aFmt.SetNumberingType(aNumViewBox.GetSelectedNumberingType() ); 439cdf0e10cSrcweir pInf->SetPrefix(aPrefixED.GetText()); 440cdf0e10cSrcweir pInf->SetSuffix(aSuffixED.GetText()); 441cdf0e10cSrcweir 442cdf0e10cSrcweir pInf->SetCharFmt( lcl_GetCharFormat( pSh, 443cdf0e10cSrcweir aFtnCharTextTemplBox.GetSelectEntry() ) ); 444cdf0e10cSrcweir pInf->SetAnchorCharFmt( lcl_GetCharFormat( pSh, 445cdf0e10cSrcweir aFtnCharAnchorTemplBox.GetSelectEntry() ) ); 446cdf0e10cSrcweir 447cdf0e10cSrcweir // Absatzvorlage 448cdf0e10cSrcweir sal_uInt16 nPos = aParaTemplBox.GetSelectEntryPos(); 449cdf0e10cSrcweir if(LISTBOX_ENTRY_NOTFOUND != nPos) 450cdf0e10cSrcweir { 451cdf0e10cSrcweir const String aFmtName( aParaTemplBox.GetSelectEntry() ); 452cdf0e10cSrcweir SwTxtFmtColl *pColl = pSh->GetParaStyle(aFmtName, SwWrtShell::GETSTYLE_CREATEANY); 453cdf0e10cSrcweir ASSERT(pColl, "Absatzvorlage nicht gefunden."); 454cdf0e10cSrcweir pInf->SetFtnTxtColl(*pColl); 455cdf0e10cSrcweir } 456cdf0e10cSrcweir 457cdf0e10cSrcweir // Seitenvorlage 458cdf0e10cSrcweir pInf->ChgPageDesc( pSh->FindPageDescByName( 459cdf0e10cSrcweir aPageTemplBox.GetSelectEntry(), sal_True ) ); 460cdf0e10cSrcweir 461cdf0e10cSrcweir if ( bEndNote ) 462cdf0e10cSrcweir { 463cdf0e10cSrcweir if ( !(*pInf == pSh->GetEndNoteInfo()) ) 464cdf0e10cSrcweir pSh->SetEndNoteInfo( *pInf ); 465cdf0e10cSrcweir } 466cdf0e10cSrcweir else 467cdf0e10cSrcweir { 468cdf0e10cSrcweir SwFtnInfo *pI = (SwFtnInfo*)pInf; 469cdf0e10cSrcweir pI->ePos = aPosPageBox.IsChecked() ? FTNPOS_PAGE : FTNPOS_CHAPTER; 470cdf0e10cSrcweir pI->eNum = (SwFtnNum)GetNumbering(); 471cdf0e10cSrcweir pI->aQuoVadis = aContEdit.GetText(); 472cdf0e10cSrcweir pI->aErgoSum = aContFromEdit.GetText(); 473cdf0e10cSrcweir if ( !(*pI == pSh->GetFtnInfo()) ) 474cdf0e10cSrcweir pSh->SetFtnInfo( *pI ); 475cdf0e10cSrcweir } 476cdf0e10cSrcweir delete pInf; 477cdf0e10cSrcweir return sal_True; 478cdf0e10cSrcweir } 479cdf0e10cSrcweir 480cdf0e10cSrcweir SwFootNoteOptionPage::SwFootNoteOptionPage( Window *pParent, const SfxItemSet &rSet ) : 481cdf0e10cSrcweir SwEndNoteOptionPage( pParent, sal_False, rSet ) 482cdf0e10cSrcweir { 483cdf0e10cSrcweir } 484cdf0e10cSrcweir 485cdf0e10cSrcweir SwFootNoteOptionPage::~SwFootNoteOptionPage() 486cdf0e10cSrcweir { 487cdf0e10cSrcweir } 488cdf0e10cSrcweir 489cdf0e10cSrcweir SfxTabPage *SwFootNoteOptionPage::Create(Window *pParent, const SfxItemSet &rSet ) 490cdf0e10cSrcweir { 491cdf0e10cSrcweir return new SwFootNoteOptionPage( pParent, rSet ); 492cdf0e10cSrcweir } 493cdf0e10cSrcweir 494cdf0e10cSrcweir 495cdf0e10cSrcweir 496cdf0e10cSrcweir 497cdf0e10cSrcweir 498cdf0e10cSrcweir 499cdf0e10cSrcweir 500