/************************************************************** * * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. * *************************************************************/ // MARKER(update_precomp.py): autogen include statement, do not remove #include "precompiled_sw.hxx" #ifdef SW_DLLIMPLEMENTATION #undef SW_DLLIMPLEMENTATION #endif #include #include #include #include #ifndef _VIEW_HXX #include #endif #include #ifndef _GLOBALS_HRC #include #endif #ifndef _DOCSH_HXX #include #endif #ifndef _PVIEW_HXX #include #endif #include #include #ifndef _MODCFG_HXX #include #endif // fuer Statistikfelder #include #include #ifndef _DOCSTDLG_HRC #include #endif /*-------------------------------------------------------------------- Beschreibung: Create --------------------------------------------------------------------*/ SfxTabPage * SwDocStatPage::Create(Window *pParent, const SfxItemSet &rSet) { return new SwDocStatPage(pParent, rSet); } /*-------------------------------------------------------------------- Beschreibung: Ctor --------------------------------------------------------------------*/ SwDocStatPage::SwDocStatPage(Window *pParent, const SfxItemSet &rSet) : SfxTabPage (pParent, SW_RES(TP_DOC_STAT), rSet), aPageLbl (this, SW_RES( FT_PAGE )), aPageNo (this, SW_RES( FT_PAGE_COUNT )), aTableLbl (this, SW_RES( FT_TABLE )), aTableNo (this, SW_RES( FT_TABLE_COUNT)), aGrfLbl (this, SW_RES( FT_GRF )), aGrfNo (this, SW_RES( FT_GRF_COUNT )), aOLELbl (this, SW_RES( FT_OLE )), aOLENo (this, SW_RES( FT_OLE_COUNT )), aParaLbl (this, SW_RES( FT_PARA )), aParaNo (this, SW_RES( FT_PARA_COUNT )), aWordLbl (this, SW_RES( FT_WORD )), aWordNo (this, SW_RES( FT_WORD_COUNT )), aCharLbl (this, SW_RES( FT_CHAR )), aCharNo (this, SW_RES( FT_CHAR_COUNT )), aLineLbl (this, SW_RES( FT_LINE )), aLineNo (this, SW_RES( FT_LINE_COUNT )), aUpdatePB (this, SW_RES( PB_PDATE )) { Update(); FreeResource(); aUpdatePB.SetClickHdl(LINK(this, SwDocStatPage, UpdateHdl)); //#111684# is the current view a page preview no SwFEShell can be found -> hide the update button SwDocShell* pDocShell = (SwDocShell*) SfxObjectShell::Current(); SwFEShell* pFEShell = pDocShell->GetFEShell(); if(!pFEShell) { aUpdatePB.Show(sal_False); aLineLbl.Show(sal_False); aLineNo .Show(sal_False); } } SwDocStatPage::~SwDocStatPage() { } /*-------------------------------------------------------------------- Beschreibung: ItemSet fuellen bei Aenderung --------------------------------------------------------------------*/ sal_Bool SwDocStatPage::FillItemSet(SfxItemSet & /*rSet*/) { return sal_False; } /*-------------------------------------------------------------------- Beschreibung: --------------------------------------------------------------------*/ void SwDocStatPage::Reset(const SfxItemSet &/*rSet*/) { } /*------------------------------------------------------------------------ Beschreibung: Aktualisieren / Setzen der Daten ------------------------------------------------------------------------*/ void SwDocStatPage::SetData(const SwDocStat &rStat) { aTableNo.SetText(String::CreateFromInt32( rStat.nTbl )); aGrfNo.SetText(String::CreateFromInt32( rStat.nGrf )); aOLENo.SetText(String::CreateFromInt32( rStat.nOLE )); aPageNo.SetText(String::CreateFromInt32( rStat.nPage )); aParaNo.SetText(String::CreateFromInt32( rStat.nPara )); aWordNo.SetText(String::CreateFromInt32( rStat.nWord )); aCharNo.SetText(String::CreateFromInt32( rStat.nChar )); } /*------------------------------------------------------------------------ Beschreibung: Aktualisieren der Statistik ------------------------------------------------------------------------*/ void SwDocStatPage::Update() { SfxViewShell *pVSh = SfxViewShell::Current(); ViewShell *pSh = 0; if ( pVSh->ISA(SwView) ) pSh = ((SwView*)pVSh)->GetWrtShellPtr(); else if ( pVSh->ISA(SwPagePreView) ) pSh = ((SwPagePreView*)pVSh)->GetViewShell(); ASSERT( pSh, "Shell not found" ); SwWait aWait( *pSh->GetDoc()->GetDocShell(), true ); pSh->StartAction(); aDocStat = pSh->GetDoc()->GetDocStat(); pSh->GetDoc()->UpdateDocStat( aDocStat ); pSh->EndAction(); SetData(aDocStat); } /*-----------------19.06.97 16.37------------------- Zeilennummer aktualisieren --------------------------------------------------*/ IMPL_LINK( SwDocStatPage, UpdateHdl, PushButton*, EMPTYARG) { Update(); SwDocShell* pDocShell = (SwDocShell*) SfxObjectShell::Current(); SwFEShell* pFEShell = pDocShell->GetFEShell(); if(pFEShell) aLineNo.SetText( String::CreateFromInt32( pFEShell->GetLineCount(sal_False))); //pButton->Disable(); return 0; }