Files
libreoffice/sw/source/ui/uiview/view1.cxx
Jens-Heiner Rechtien 7b0b5cdfee initial import
2000-09-18 16:15:01 +00:00

273 lines
7.9 KiB
C++

/*************************************************************************
*
* $RCSfile: view1.cxx,v $
*
* $Revision: 1.1.1.1 $
*
* last change: $Author: hr $ $Date: 2000-09-18 17:14:49 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
*
* - GNU Lesser General Public License Version 2.1
* - Sun Industry Standards Source License Version 1.1
*
* Sun Microsystems Inc., October, 2000
*
* GNU Lesser General Public License Version 2.1
* =============================================
* Copyright 2000 by Sun Microsystems, Inc.
* 901 San Antonio Road, Palo Alto, CA 94303, USA
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License version 2.1, as published by the Free Software Foundation.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
* MA 02111-1307 USA
*
*
* Sun Industry Standards Source License Version 1.1
* =================================================
* The contents of this file are subject to the Sun Industry Standards
* Source License Version 1.1 (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.openoffice.org/license.html.
*
* Software provided under this License is provided on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
* WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
* MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
* See the License for the specific provisions governing your rights and
* obligations concerning the Software.
*
* The Initial Developer of the Original Code is: Sun Microsystems, Inc.
*
* Copyright: 2000 by Sun Microsystems, Inc.
*
* All Rights Reserved.
*
* Contributor(s): _______________________________________
*
*
************************************************************************/
#ifdef PRECOMPILED
#include "ui_pch.hxx"
#endif
#pragma hdrstop
#ifndef _SVDPAGV_HXX //autogen
#include <svx/svdpagv.hxx>
#endif
#ifndef _SVDVIEW_HXX //autogen
#include <svx/svdview.hxx>
#endif
#ifndef _SVX_RULER_HXX //autogen
#include <svx/ruler.hxx>
#endif
#ifndef _IDXMRK_HXX
#include <idxmrk.hxx>
#endif
#ifndef _VIEW_HXX
#include <view.hxx>
#endif
#ifndef _WRTSH_HXX
#include <wrtsh.hxx>
#endif
#ifndef _SWMODULE_HXX
#include <swmodule.hxx>
#endif
#ifndef _VIEWOPT_HXX
#include <viewopt.hxx>
#endif
#ifndef _DOCSH_HXX
#include <docsh.hxx>
#endif
#ifndef _GLOBDOC_HXX
#include <globdoc.hxx>
#endif
#ifndef _NAVIPI_HXX
#include <navipi.hxx>
#endif
#ifndef _FLDWRAP_HXX
#include <fldwrap.hxx>
#endif
#ifndef _REDLNDLG_HXX
#include <redlndlg.hxx>
#endif
#ifndef _DPAGE_HXX
#include <dpage.hxx>
#endif
#ifndef _EDTWIN_HXX
#include <edtwin.hxx>
#endif
#ifndef _CMDID_H
#include <cmdid.h>
#endif
extern int bDocSzUpdated;
/*--------------------------------------------------------------------
Beschreibung:
--------------------------------------------------------------------*/
void SwView::Activate(BOOL bMDIActivate)
{
// aktuelle View anmelden an der DocShell
// die View bleibt solange an der DocShell
// aktiv bis Sie zerstoert wird oder durch Activate eine
// neue gesetzt wird
SwDocShell* pDocSh = GetDocShell();
if(pDocSh)
pDocSh->SetView(this);
SwModule* pSwMod = SW_MOD();
pSwMod->SetView(this);
// Dokumentgroesse hat sich geaendert
if(!bDocSzUpdated)
DocSzChgd(aDocSz);
pHLineal->SetActive( TRUE );
if(pVLineal)
pVLineal->SetActive( TRUE );
if ( bMDIActivate )
{
pWrtShell->ShGetFcs(FALSE); // Selektionen sichtbar
if( sSwViewData.Len() )
{
ReadUserData( sSwViewData, FALSE );
if( sNewCrsrPos.Len() )
{
long nX = sNewCrsrPos.GetToken( 0, ';' ).ToInt32(),
nY = sNewCrsrPos.GetToken( 1, ';' ).ToInt32();
pWrtShell->SwCrsrShell::SetCrsr( Point( nX, nY ), FALSE );
sNewCrsrPos.Erase();
}
sSwViewData.Erase();
}
AttrChangedNotify(pWrtShell);
// Flddlg ggf neu initialisieren (z.B. fuer TYP_SETVAR)
USHORT nId = SwFldDlgWrapper::GetChildWindowId();
SfxViewFrame* pVFrame = GetViewFrame();
SwFldDlgWrapper *pWrp = (SwFldDlgWrapper*)pVFrame->GetChildWindow(nId);
if (pWrp)
pWrp->ReInitDlg(GetDocShell());
// RedlineDlg ggf neu initialisieren
nId = SwRedlineAcceptChild::GetChildWindowId();
SwRedlineAcceptChild *pRed = (SwRedlineAcceptChild*)pVFrame->GetChildWindow(nId);
if (pRed)
pRed->ReInitDlg(GetDocShell());
// reinit IdxMarkDlg
nId = SwInsertIdxMarkWrapper::GetChildWindowId();
SwInsertIdxMarkWrapper *pIdxMrk = (SwInsertIdxMarkWrapper*)pVFrame->GetChildWindow(nId);
if (pIdxMrk)
pIdxMrk->ReInitDlg(*pWrtShell);
// reinit AuthMarkDlg
nId = SwInsertAuthMarkWrapper::GetChildWindowId();
SwInsertAuthMarkWrapper *pAuthMrk = (SwInsertAuthMarkWrapper*)pVFrame->
GetChildWindow(nId);
if (pAuthMrk)
pAuthMrk->ReInitDlg(*pWrtShell);
}
else
//Wenigstens das Notify rufen (vorsichtshalber wegen der SlotFilter
AttrChangedNotify(pWrtShell);
SfxViewShell::Activate(bMDIActivate);
}
/*--------------------------------------------------------------------
Beschreibung:
--------------------------------------------------------------------*/
void SwView::Deactivate(BOOL bMDIActivate)
{
extern BOOL bFlushCharBuffer ;
// Befinden sich noch Zeichen im Input Buffer?
if( bFlushCharBuffer )
GetEditWin().FlushInBuffer( pWrtShell );
if( bMDIActivate )
{
pWrtShell->ShLooseFcs(); // Selektionen unsichtbar
pHLineal->SetActive( FALSE );
if(pVLineal)
pVLineal->SetActive( FALSE );
}
SfxViewShell::Deactivate(bMDIActivate);
}
/*--------------------------------------------------------------------
Beschreibung:
--------------------------------------------------------------------*/
void SwView::MarginChanged()
{
GetWrtShell().SetBrowseBorder( GetMargin() );
}
/*------------------------------------------------------------------------
$Log: not supported by cvs2svn $
Revision 1.79 2000/09/18 16:06:12 willem.vandorp
OpenOffice header added.
Revision 1.78 2000/09/08 08:12:53 os
Change: Set/Toggle/Has/Knows/Show/GetChildWindow
Revision 1.77 2000/08/15 14:08:20 jp
Task #77422#: PrintPreView in the same window
Revision 1.76 1999/09/15 14:13:05 os
dialog for authorities
Revision 1.75 1999/09/07 13:56:53 os
Insert/EditIndexEntry as FloatingWindow
Revision 1.74 1999/01/25 12:49:14 JP
Task #58677#: Crsr in Readonly Bereichen zulassen
Rev 1.73 25 Jan 1999 13:49:14 JP
Task #58677#: Crsr in Readonly Bereichen zulassen
Rev 1.72 19 Jun 1998 08:54:14 OS
VC-Sbx-Reste auch noch raus
Rev 1.71 19 Jun 1998 07:58:34 MH
GetSBxForm entfallen (OS)
Rev 1.70 09 Jun 1998 15:32:52 OM
VC-Controls entfernt
Rev 1.69 31 Mar 1998 15:31:52 OS
SetReadonlyUI von IsAllProtect abhaengig #49077#
Rev 1.68 27 Mar 1998 14:15:16 OM
ChildWindows im Modified-Hdl updaten
------------------------------------------------------------------------*/