894 lines
25 KiB
C++
894 lines
25 KiB
C++
/*************************************************************************
|
||
*
|
||
* $RCSfile: viewmdi.cxx,v $
|
||
*
|
||
* $Revision: 1.2 $
|
||
*
|
||
* last change: $Author: os $ $Date: 2000-09-28 15:24:06 $
|
||
*
|
||
* 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
|
||
|
||
#include <string> // HACK: prevent conflict between STLPORT and Workshop headers
|
||
|
||
#include "hintids.hxx"
|
||
#include "uiparam.hxx"
|
||
|
||
#ifndef _SFXDISPATCH_HXX //autogen
|
||
#include <sfx2/dispatch.hxx>
|
||
#endif
|
||
#ifndef _SVX_RULER_HXX //autogen
|
||
#include <svx/ruler.hxx>
|
||
#endif
|
||
#ifndef _SVX_LRSPITEM_HXX //autogen
|
||
#include <svx/lrspitem.hxx>
|
||
#endif
|
||
#ifndef _SVX_SRCHITEM_HXX //autogen
|
||
#include <svx/srchitem.hxx>
|
||
#endif
|
||
#ifndef _SFXREQUEST_HXX //autogen
|
||
#include <sfx2/request.hxx>
|
||
#endif
|
||
|
||
|
||
#include "swmodule.hxx"
|
||
#include "view.hxx"
|
||
#include "wrtsh.hxx"
|
||
#include "viewopt.hxx"
|
||
#include "frmatr.hxx"
|
||
#include "globals.hrc"
|
||
#include "docsh.hxx"
|
||
#include "uitool.hxx"
|
||
#include "cmdid.h"
|
||
#include "edtwin.hxx"
|
||
#include "pagedesc.hxx"
|
||
#include "bookmrk.hxx"
|
||
#include "fldbas.hxx"
|
||
#include "workctrl.hxx"
|
||
#include "usrpref.hxx"
|
||
#include "scroll.hxx"
|
||
#include "wview.hxx"
|
||
#include "view.hrc"
|
||
#include "ribbar.hrc"
|
||
#include "helpid.h"
|
||
|
||
USHORT SwView::nMoveType = NID_PGE;
|
||
BYTE SwView::nActMark = 0;
|
||
|
||
#define VIEW_IMAGECOLOR COL_LIGHTBLUE
|
||
|
||
void SwView::SetZoom( SvxZoomType eZoomType, short nFactor, BOOL bViewOnly )
|
||
{
|
||
_SetZoom( GetEditWin().GetOutputSizePixel(), eZoomType, nFactor, bViewOnly );
|
||
}
|
||
|
||
void SwView::_SetZoom( const Size &rEditSize, SvxZoomType eZoomType,
|
||
short nFactor, BOOL bViewOnly )
|
||
{
|
||
pWrtShell->LockPaint();
|
||
{
|
||
ACT_KONTEXT(pWrtShell);
|
||
|
||
long nFac = nFactor;
|
||
|
||
BOOL bWeb = 0 != PTR_CAST(SwWebView, this);
|
||
SwMasterUsrPref *pUsrPref = (SwMasterUsrPref*)SW_MOD()->GetUsrPref(bWeb);
|
||
|
||
const SwPageDesc &rDesc = pWrtShell->GetPageDesc(
|
||
pWrtShell->GetCurPageDesc() );
|
||
const SvxLRSpaceItem &rLRSpace = rDesc.GetMaster().GetLRSpace();
|
||
const SwViewOption *pOpt = pWrtShell->GetViewOptions();
|
||
long lLeftMargin;
|
||
|
||
if( eZoomType != SVX_ZOOM_PERCENT )
|
||
{
|
||
const long nOf = DOCUMENTBORDER * 2L;
|
||
Size aPageSize( pWrtShell->GetAnyCurRect(RECT_PAGE_CALC).SSize() );
|
||
|
||
if( PD_MIRROR == rDesc.GetUseOn() ) // gespiegelte Seiten
|
||
{
|
||
const SvxLRSpaceItem &rLeftLRSpace = rDesc.GetLeft().GetLRSpace();
|
||
aPageSize.Width() +=
|
||
Abs( long(rLeftLRSpace.GetLeft()) - long(rLRSpace.GetLeft()) );
|
||
}
|
||
if( SVX_ZOOM_OPTIMAL == eZoomType )
|
||
{
|
||
aPageSize.Width() -=
|
||
( rLRSpace.GetLeft() + rLRSpace.GetRight() + nLeftOfst * 2 );
|
||
}
|
||
else
|
||
{
|
||
aPageSize.Width() += nOf;
|
||
aPageSize.Height() += nOf;
|
||
}
|
||
lLeftMargin = SVX_ZOOM_PAGEWIDTH != eZoomType ?
|
||
long(rLRSpace.GetLeft()) + DOCUMENTBORDER + nLeftOfst : 0L;
|
||
|
||
const MapMode aTmpMap( MAP_TWIP );
|
||
const Size aWindowSize( GetEditWin().PixelToLogic( rEditSize, aTmpMap ) );
|
||
nFac = aWindowSize.Width() * 100 / aPageSize.Width();
|
||
if( SVX_ZOOM_WHOLEPAGE == eZoomType )
|
||
{
|
||
long nVisPercent = aWindowSize.Height() * 100 / aPageSize.Height();
|
||
nFac = Min( nFac, nVisPercent );
|
||
}
|
||
}
|
||
else
|
||
lLeftMargin = long(rLRSpace.GetLeft()) + DOCUMENTBORDER;
|
||
|
||
nFac = Max( long( MINZOOM ), nFac );
|
||
|
||
SwViewOption aOpt( *pOpt );
|
||
SwDocShell* pDocShell = GetDocShell();
|
||
if ( pDocShell->GetProtocol().IsEmbed() ||
|
||
pDocShell->GetCreateMode() == SFX_CREATE_MODE_STANDARD )
|
||
{
|
||
//MasterUsrPrefs updaten UND DANACH die ViewOptions der aktuellen
|
||
//View updaten.
|
||
if ( !bViewOnly &&
|
||
(USHORT(nFac) != pUsrPref->GetZoom() ||
|
||
BYTE (eZoomType) != pUsrPref->GetZoomType()) )
|
||
{
|
||
pUsrPref->SetZoom ( USHORT(nFac) );
|
||
pUsrPref->SetZoomType( BYTE( eZoomType ) );
|
||
SW_MOD()->ApplyUsrPref( *pUsrPref, 0 );
|
||
pUsrPref->SetModified();
|
||
}
|
||
if ( pOpt->GetZoom() != (USHORT) nFac )
|
||
{
|
||
aOpt.SetZoom ( USHORT(nFac) );
|
||
aOpt.SetReadonly(pOpt->IsReadonly());
|
||
pWrtShell->ApplyViewOptions( aOpt );
|
||
}
|
||
if ( eZoomType != SVX_ZOOM_PERCENT )
|
||
{
|
||
Point aPos;
|
||
if ( eZoomType == SVX_ZOOM_WHOLEPAGE )
|
||
aPos.Y() = pWrtShell->GetAnyCurRect(RECT_PAGE).Top() - DOCUMENTBORDER;
|
||
else
|
||
{
|
||
//sicherstellen, dass sich der Cursor im sichtbaren
|
||
//Bereich befindet, damit nur 1x gescrollt wird
|
||
aPos.X() = lLeftMargin;
|
||
const SwRect &rCharRect = pWrtShell->GetCharRect();
|
||
if ( rCharRect.Top() > GetVisArea().Bottom() ||
|
||
rCharRect.Bottom() < aPos.Y() )
|
||
aPos.Y() = rCharRect.Top() - rCharRect.Height();
|
||
else
|
||
aPos.Y() = GetVisArea().Top();
|
||
}
|
||
SetVisArea( aPos );
|
||
}
|
||
// OS: Notloesung - in CalcVisArea wird u.U. wieder SetZoom gerufen und
|
||
// dann werden falsche Werte eingestellt
|
||
((SwViewOption*)pWrtShell->GetViewOptions())->SetZoomType((BYTE)eZoomType);
|
||
CalcVisArea( rEditSize ); //fuer das Neuberechnen des sichtbaren Bereiches
|
||
}
|
||
else if ( USHORT(nFac) != pOpt->GetZoom() )
|
||
{
|
||
aOpt.SetZoom ( USHORT(nFac) );
|
||
pWrtShell->ApplyViewOptions( aOpt );
|
||
}
|
||
|
||
const Fraction aFrac( nFac, 100 );
|
||
if ( pVLineal )
|
||
{
|
||
pVLineal->SetZoom( aFrac );
|
||
pVLineal->ForceUpdate();
|
||
}
|
||
if ( pHLineal )
|
||
{
|
||
pHLineal->SetZoom( aFrac );
|
||
pHLineal->ForceUpdate();
|
||
}
|
||
((SwViewOption*)pWrtShell->GetViewOptions())->SetZoomType((BYTE)eZoomType);
|
||
}
|
||
pWrtShell->UnlockPaint();
|
||
// eZoom = eZoomType;
|
||
}
|
||
|
||
/*
|
||
* Scrollbar - Handler
|
||
*/
|
||
|
||
int SwView::_CreateScrollbar( int bHori )
|
||
{
|
||
Window *pMDI = &GetViewFrame()->GetWindow();
|
||
SwScrollbar** ppScrollbar = bHori ? &pHScrollbar : &pVScrollbar;
|
||
|
||
ASSERT( !*ppScrollbar, "vorher abpruefen!" )
|
||
|
||
if( !bHori )
|
||
CreatePageButtons( !bShowAtResize );
|
||
|
||
// wenn beide Scrollbar eingeschaltet werden, dann auch die ScrollbarBox
|
||
// anlegen
|
||
if( !pScrollFill && (bHori ? pVScrollbar : pHScrollbar) )
|
||
{
|
||
pScrollFill = new ScrollBarBox( pMDI, GetDocShell()->IsInFrame()
|
||
? 0 : WB_SIZEABLE );
|
||
if ( !bShowAtResize )
|
||
pScrollFill->Show();
|
||
}
|
||
|
||
*ppScrollbar = new SwScrollbar( pMDI, bHori );
|
||
UpdateScrollbars();
|
||
if(bHori)
|
||
(*ppScrollbar)->SetScrollHdl( LINK( this, SwView, EndScrollHdl ));
|
||
else
|
||
(*ppScrollbar)->SetScrollHdl( LINK( this, SwView, ScrollHdl ));
|
||
(*ppScrollbar)->SetEndScrollHdl( LINK( this, SwView, EndScrollHdl ));
|
||
|
||
(*ppScrollbar)->EnableDrag( TRUE );
|
||
(*ppScrollbar)->SetAuto( pWrtShell->IsBrowseMode() &&
|
||
!GetDocShell()->GetProtocol().IsInPlaceActive() );
|
||
|
||
InvalidateBorder();
|
||
|
||
// Scrollbar muss nochmals getestet werden, da im InvalidateBorder u.U. der
|
||
// Scrollbar wieder geloescht wurde
|
||
if ( !bShowAtResize && (*ppScrollbar))
|
||
(*ppScrollbar)->Show();
|
||
|
||
return 1;
|
||
}
|
||
|
||
void SwView::CreatePageButtons(BOOL bShow)
|
||
{
|
||
Window *pMDI = &GetViewFrame()->GetWindow();
|
||
pPageUpBtn = new SwHlpImageButton(pMDI, SW_RES( BTN_PAGEUP ), TRUE );
|
||
pPageUpBtn->SetHelpId(HID_SCRL_PAGEUP);
|
||
pPageDownBtn = new SwHlpImageButton(pMDI, SW_RES( BTN_PAGEDOWN ), FALSE );
|
||
pPageDownBtn->SetHelpId(HID_SCRL_PAGEDOWN);
|
||
pNaviBtn = new SwNaviImageButton(pMDI);
|
||
pNaviBtn->SetHelpId(HID_SCRL_NAVI);
|
||
Link aLk( LINK( this, SwView, BtnPage ) );
|
||
pPageUpBtn->SetClickHdl( aLk );
|
||
pPageDownBtn->SetClickHdl( aLk );
|
||
if(nMoveType != NID_PGE)
|
||
{
|
||
Color aColor(VIEW_IMAGECOLOR);
|
||
SetImageButtonColor(aColor);
|
||
}
|
||
|
||
if(bShow)
|
||
{
|
||
pPageUpBtn->Show();
|
||
pPageDownBtn->Show();
|
||
pNaviBtn->Show();
|
||
}
|
||
};
|
||
|
||
int SwView::_KillScrollbar( int bHori )
|
||
{
|
||
SwScrollbar** ppScrBar;
|
||
if( bHori )
|
||
{
|
||
if( 0 == *( ppScrBar = &pHScrollbar ) )
|
||
return 1;
|
||
}
|
||
else
|
||
{
|
||
if( 0 == *( ppScrBar = &pVScrollbar ) )
|
||
return 1;
|
||
DELETEZ(pNaviBtn);
|
||
DELETEZ(pPageUpBtn);
|
||
DELETEZ(pPageDownBtn);
|
||
}
|
||
DELETEZ( *ppScrBar );
|
||
|
||
// wird einer der Scrollbar ausgeschaltet, muss auch die ScrollbarBox
|
||
// entfernt werden
|
||
if( pScrollFill )
|
||
DELETEZ( pScrollFill );
|
||
|
||
InvalidateBorder();
|
||
return 1;
|
||
}
|
||
|
||
/*
|
||
* Button-Handler
|
||
*/
|
||
IMPL_LINK( SwView, BtnPage, Button *, pButton )
|
||
{
|
||
MoveNavigation(pButton == pPageDownBtn);
|
||
return 0;
|
||
}
|
||
/*-----------------20.06.97 10:46-------------------
|
||
|
||
--------------------------------------------------*/
|
||
void SwView::MoveNavigation(BOOL bNext)
|
||
{
|
||
SwWrtShell& rSh = GetWrtShell();
|
||
switch( nMoveType )
|
||
{
|
||
case NID_PGE:
|
||
bNext ? PhyPageDown() : PhyPageUp();
|
||
break;
|
||
case NID_TBL :
|
||
rSh.EnterStdMode();
|
||
if(bNext)
|
||
rSh.MoveTable(fnTableNext, fnTableStart);
|
||
else
|
||
rSh.MoveTable(fnTablePrev, fnTableStart);
|
||
break;
|
||
case NID_FRM :
|
||
case NID_GRF:
|
||
case NID_OLE:
|
||
{
|
||
FlyCntType eType = FLYCNTTYPE_FRM;
|
||
if(nMoveType == NID_GRF)
|
||
eType = FLYCNTTYPE_GRF;
|
||
else if(nMoveType == NID_OLE)
|
||
eType = FLYCNTTYPE_OLE;
|
||
BOOL bSuccess = bNext ?
|
||
rSh.GotoNextFly(eType) :
|
||
rSh.GotoPrevFly(eType);
|
||
if(bSuccess)
|
||
{
|
||
rSh.HideCrsr();
|
||
rSh.EnterSelFrmMode();
|
||
}
|
||
}
|
||
break;
|
||
case NID_DRW :
|
||
case NID_CTRL:
|
||
rSh.GotoObj(bNext,
|
||
nMoveType == NID_DRW ?
|
||
DRAW_SIMPLE :
|
||
DRAW_CONTROL);
|
||
break;
|
||
case NID_REG :
|
||
rSh.EnterStdMode();
|
||
if(bNext)
|
||
rSh.MoveRegion(fnRegionNext, fnRegionStart);
|
||
else
|
||
rSh.MoveRegion(fnRegionPrev, fnRegionStart);
|
||
|
||
break;
|
||
case NID_BKM :
|
||
rSh.EnterStdMode();
|
||
GetViewFrame()->GetDispatcher()->Execute(bNext ?
|
||
FN_NEXT_BOOKMARK :
|
||
FN_PREV_BOOKMARK);
|
||
break;
|
||
case NID_OUTL:
|
||
rSh.EnterStdMode();
|
||
bNext ? rSh.GotoNextOutline() : rSh.GotoPrevOutline();
|
||
break;
|
||
case NID_SEL :
|
||
bNext ? rSh.GoNextCrsr() : rSh.GoPrevCrsr();
|
||
break;
|
||
case NID_FTN:
|
||
rSh.EnterStdMode();
|
||
bNext ?
|
||
rSh.GotoNextFtnAnchor() :
|
||
rSh.GotoPrevFtnAnchor();
|
||
break;
|
||
case NID_MARK:
|
||
{
|
||
// Selektionen aufheben
|
||
rSh.MoveCrsr();
|
||
rSh.EnterStdMode();
|
||
const USHORT nBookCnt = rSh.GetBookmarkCnt();
|
||
USHORT nMarkCount = 0;
|
||
USHORT nRealIdx[MAX_MARKS];
|
||
for( USHORT nCount = 0; nCount < nBookCnt; ++nCount )
|
||
{
|
||
if( rSh.GetBookmark( nCount ).IsMark() )
|
||
{
|
||
nRealIdx[nMarkCount] = nCount;
|
||
++nMarkCount;
|
||
}
|
||
}
|
||
if (nMarkCount)
|
||
{
|
||
if(!bNext)
|
||
{
|
||
if (nActMark > 1)
|
||
--nActMark;
|
||
else
|
||
nActMark = nMarkCount;
|
||
}
|
||
else
|
||
{
|
||
++nActMark;
|
||
if (nActMark > MAX_MARKS || nActMark > nMarkCount)
|
||
nActMark = 1;
|
||
}
|
||
|
||
rSh.GotoBookmark( nRealIdx[nActMark - 1] );
|
||
}
|
||
}
|
||
break;
|
||
case NID_POSTIT:
|
||
{
|
||
|
||
SwFieldType* pFldType = rSh.GetFldType(0, RES_POSTITFLD);
|
||
rSh.MoveFldType( pFldType, bNext );
|
||
}
|
||
break;
|
||
case NID_SRCH_REP:
|
||
if(pSrchItem)
|
||
{
|
||
BOOL bBackward = pSrchItem->GetBackward();
|
||
if(rSh.HasSelection() && !bNext == rSh.IsCrsrPtAtEnd())
|
||
rSh.SwapPam();
|
||
pSrchItem->SetBackward(!bNext);
|
||
SfxRequest aReq(FN_REPEAT_SEARCH, SFX_CALLMODE_SLOT, GetPool());
|
||
ExecSearch(aReq);
|
||
pSrchItem->SetBackward(bBackward);
|
||
}
|
||
break;
|
||
case NID_INDEX_ENTRY:
|
||
rSh.GotoNxtPrvTOXMark(bNext);
|
||
break;
|
||
|
||
case NID_TABLE_FORMULA:
|
||
rSh.GotoNxtPrvTblFormula( bNext );
|
||
break;
|
||
|
||
case NID_TABLE_FORMULA_ERROR:
|
||
rSh.GotoNxtPrvTblFormula( bNext, TRUE );
|
||
break;
|
||
}
|
||
pEditWin->GrabFocus();
|
||
}
|
||
|
||
/*************************************************************************
|
||
|*
|
||
|* SwView::CreateTab()
|
||
|*
|
||
|* Beschreibung
|
||
|* Ersterstellung VB 29.05.91
|
||
|* Letzte Aenderung OS 09.05.96
|
||
|*
|
||
*************************************************************************/
|
||
|
||
int SwView::_CreateTab()
|
||
{
|
||
ASSERT( !StatTab(), "vorher abpruefen!" )
|
||
|
||
pHLineal->SetActive(GetFrame() && IsActive());
|
||
|
||
pHLineal->Show();
|
||
InvalidateBorder();
|
||
return 1;
|
||
}
|
||
|
||
/*************************************************************************
|
||
|*
|
||
|* SwView::KillTab()
|
||
|*
|
||
|* Beschreibung
|
||
|* Ersterstellung VB 29.05.91
|
||
|* Letzte Aenderung OS 09.05.96
|
||
|*
|
||
*************************************************************************/
|
||
|
||
int SwView::_KillTab()
|
||
{
|
||
ASSERT( StatTab(), "vorher abpruefen!" )
|
||
|
||
pHLineal->Hide();
|
||
// DELETEZ(pHLineal);
|
||
InvalidateBorder();
|
||
return 1;
|
||
}
|
||
|
||
void SwView::ChangeTabMetric( FieldUnit eUnit )
|
||
{
|
||
if ( pHLineal )
|
||
{
|
||
if(eUnit == FUNIT_MM)
|
||
eUnit = FUNIT_CM;
|
||
if(pHLineal->GetUnit() != eUnit )
|
||
{
|
||
pHLineal->SetUnit( eUnit );
|
||
pHLineal->Invalidate();
|
||
}
|
||
}
|
||
}
|
||
|
||
void SwView::ChangeVLinealMetric( FieldUnit eUnit )
|
||
{
|
||
if ( pVLineal )
|
||
{
|
||
if(eUnit == FUNIT_MM)
|
||
eUnit = FUNIT_CM;
|
||
if(pVLineal->GetUnit() != eUnit)
|
||
{
|
||
pVLineal->SetUnit( eUnit );
|
||
pVLineal->Invalidate();
|
||
}
|
||
}
|
||
}
|
||
|
||
/*************************************************************************
|
||
|*
|
||
|* SwView::CreateVLineal()
|
||
|*
|
||
|* Beschreibung
|
||
|* Ersterstellung VB 29.05.91
|
||
|* Letzte Aenderung VB 19.05.92
|
||
|*
|
||
*************************************************************************/
|
||
|
||
int SwView::_CreateVLineal()
|
||
{
|
||
ASSERT( !StatVLineal(), "vorher abpruefen!" )
|
||
|
||
Window *pMDI = &GetViewFrame()->GetWindow();
|
||
|
||
pVLineal = new SvxRuler(pMDI, pEditWin,
|
||
0,
|
||
GetViewFrame()->GetBindings(),
|
||
WB_VSCROLL | WB_3DLOOK | WB_BORDER );
|
||
if( pVLineal && pHLineal )
|
||
pHLineal->SetBorderPos( pVLineal->GetSizePixel().Width()-1 );
|
||
|
||
pVLineal->SetActive(GetFrame() && IsActive());
|
||
const SwViewOption* pOpt = pWrtShell->GetViewOptions();
|
||
pVLineal->SetZoom(Fraction(pOpt->GetZoom(), 100));
|
||
BOOL bWeb = 0 != PTR_CAST(SwWebView, this);
|
||
FieldUnit eMetric = ::GetDfltMetric(bWeb);
|
||
if(eMetric == FUNIT_MM)
|
||
eMetric = FUNIT_CM;
|
||
pVLineal->SetUnit(eMetric);
|
||
|
||
InvalidateBorder();
|
||
if ( !bShowAtResize )
|
||
pVLineal->Show();
|
||
return 1;
|
||
}
|
||
|
||
/*************************************************************************
|
||
|*
|
||
|* SwView::KillVLineal()
|
||
|*
|
||
|* Beschreibung
|
||
|* Ersterstellung VB 29.05.91
|
||
|* Letzte Aenderung VB 29.05.91
|
||
|*
|
||
*************************************************************************/
|
||
|
||
int SwView::_KillVLineal()
|
||
{
|
||
ASSERT( StatVLineal(), "vorher abpruefen!" )
|
||
|
||
pVLineal->Hide();
|
||
|
||
if ( pHLineal )
|
||
pHLineal->SetBorderPos( 0 );
|
||
|
||
DELETEZ(pVLineal);
|
||
InvalidateBorder();
|
||
return 1;
|
||
}
|
||
/*************************************************************************
|
||
|*
|
||
|* SwView::ExecRulerClick()
|
||
|*
|
||
|* Beschreibung
|
||
|* Ersterstellung OS 15.06.95
|
||
|* Letzte Aenderung
|
||
|*
|
||
*************************************************************************/
|
||
|
||
IMPL_LINK( SwView, ExecRulerClick, Ruler *, pRuler )
|
||
{
|
||
USHORT nDefPage = 0;
|
||
switch( pRuler->GetClickType() )
|
||
{
|
||
case RULER_TYPE_DONTKNOW:
|
||
case RULER_TYPE_OUTSIDE:
|
||
case RULER_TYPE_INDENT:
|
||
case RULER_TYPE_MARGIN1:
|
||
case RULER_TYPE_MARGIN2:
|
||
nDefPage = TP_PARA_STD;
|
||
break;
|
||
default:
|
||
nDefPage = TP_TABULATOR;
|
||
|
||
}
|
||
|
||
SfxUInt16Item aDefPage(SID_PARA_DLG, nDefPage);
|
||
GetViewFrame()->GetDispatcher()->Execute( SID_PARA_DLG,
|
||
SFX_CALLMODE_SYNCHRON|SFX_CALLMODE_RECORD,
|
||
&aDefPage, 0L );
|
||
return 0;
|
||
}
|
||
|
||
|
||
/*-----------------20.02.97 09:11-------------------
|
||
|
||
--------------------------------------------------*/
|
||
|
||
USHORT SwView::GetMoveType()
|
||
{
|
||
return nMoveType;
|
||
}
|
||
/*-----------------20.02.97 09:11-------------------
|
||
|
||
--------------------------------------------------*/
|
||
|
||
void SwView::SetMoveType(USHORT nSet)
|
||
{
|
||
BOOL bLastPage = nMoveType == NID_PGE;
|
||
nMoveType = nSet;
|
||
BOOL bNewPage = nMoveType == NID_PGE;
|
||
if(bNewPage != bLastPage)
|
||
{
|
||
Color aColor(bNewPage ? COL_BLACK : VIEW_IMAGECOLOR);
|
||
const TypeId aTypeId = TYPE(SwView);
|
||
SwView* pView = (SwView*)SfxViewShell::GetFirst(&aTypeId);
|
||
while( pView )
|
||
{
|
||
pView->SetImageButtonColor(aColor);
|
||
pView = (SwView*)SfxViewShell::GetNext(*pView, &aTypeId);
|
||
}
|
||
}
|
||
}
|
||
|
||
/*-----------------20.06.97 11:18-------------------
|
||
|
||
--------------------------------------------------*/
|
||
void SwView::SetActMark(BYTE nSet)
|
||
{
|
||
nActMark = nSet;
|
||
}
|
||
|
||
/*-----------------15.03.97 10:53-------------------
|
||
|
||
--------------------------------------------------*/
|
||
|
||
void SwView::SetImageButtonColor(Color& rColor)
|
||
{
|
||
if(pPageUpBtn)
|
||
{
|
||
pPageUpBtn->SetControlForeground(rColor);
|
||
pPageDownBtn->SetControlForeground(rColor);
|
||
}
|
||
}
|
||
|
||
|
||
/*------------------------------------------------------------------------
|
||
|
||
$Log: not supported by cvs2svn $
|
||
Revision 1.1.1.1 2000/09/18 17:14:49 hr
|
||
initial import
|
||
|
||
Revision 1.126 2000/09/18 16:06:13 willem.vandorp
|
||
OpenOffice header added.
|
||
|
||
Revision 1.125 2000/09/07 15:59:33 os
|
||
change: SFX_DISPATCHER/SFX_BINDINGS removed
|
||
|
||
Revision 1.124 2000/05/24 13:13:57 hr
|
||
conflict between STLPORT and Workshop header
|
||
|
||
Revision 1.123 2000/05/10 11:53:20 os
|
||
Basic API removed
|
||
|
||
Revision 1.122 2000/03/03 15:17:04 os
|
||
StarView remainders removed
|
||
|
||
Revision 1.121 1999/07/20 07:44:28 OS
|
||
#67585# ZoomValue/ZoomType :SetZoom changed
|
||
|
||
|
||
Rev 1.120 20 Jul 1999 09:44:28 OS
|
||
#67585# ZoomValue/ZoomType :SetZoom changed
|
||
|
||
Rev 1.119 14 Jan 1999 14:19:54 JP
|
||
Bug #60794#: Fehlererkennung beim Tabellenrechnen und anspringen von Formeln
|
||
|
||
Rev 1.118 03 Dec 1998 10:26:18 OS
|
||
#59441# Verzeichniseintrag in der Navigation
|
||
|
||
Rev 1.117 22 Sep 1998 11:36:28 MA
|
||
#56856# Kontext besser
|
||
|
||
Rev 1.116 22 Sep 1998 11:28:16 MA
|
||
#56856# Paint locken fuer Anderung vom Zoom
|
||
|
||
Rev 1.115 08 Sep 1998 17:05:12 OS
|
||
#56134# Metric fuer Text und HTML getrennt
|
||
|
||
Rev 1.114 14 Jun 1998 16:13:52 MA
|
||
chg: Navi-Tool auch fuer Browse-View
|
||
|
||
Rev 1.113 20 Mar 1998 13:23:54 MA
|
||
OleVis2Page durch BrowseMode ersetzt
|
||
|
||
Rev 1.112 24 Feb 1998 18:06:38 OS
|
||
includes, SwapPam
|
||
|
||
Rev 1.111 24 Feb 1998 12:02:02 OS
|
||
Navigationstool erweitert
|
||
|
||
Rev 1.110 07 Feb 1998 10:39:36 OS
|
||
GrabFocus nach Navigations-Move #47160#
|
||
|
||
Rev 1.109 21 Nov 1997 15:00:20 MA
|
||
includes
|
||
|
||
Rev 1.108 03 Nov 1997 13:58:30 MA
|
||
precomp entfernt
|
||
|
||
Rev 1.107 04 Sep 1997 17:14:42 MA
|
||
includes
|
||
|
||
Rev 1.106 01 Sep 1997 13:13:50 OS
|
||
DLL-Umstellung
|
||
|
||
Rev 1.105 23 Aug 1997 10:12:02 OS
|
||
Zoom ganze Seite: Factor nicht zusaetzlich mit den ViewOpt-Einstellungen multiplizieren #43052#
|
||
|
||
Rev 1.104 12 Aug 1997 15:57:26 OS
|
||
frmitems/textitem/paraitem aufgeteilt
|
||
|
||
Rev 1.103 08 Aug 1997 17:25:56 OM
|
||
Headerfile-Umstellung
|
||
|
||
Rev 1.102 07 Aug 1997 14:58:56 OM
|
||
Headerfile-Umstellung
|
||
|
||
Rev 1.101 16 Jul 1997 17:25:54 AMA
|
||
Fix: Rundungsfehler minimieren durch PixelToLogic mit 100%-MapMode
|
||
|
||
Rev 1.100 20 Jun 1997 13:55:36 OS
|
||
neu: MoveNavigation
|
||
|
||
Rev 1.99 09 Jun 1997 14:28:06 MA
|
||
chg: Browse-Flag nur noch am Doc
|
||
|
||
Rev 1.98 08 Apr 1997 10:22:46 MA
|
||
includes
|
||
|
||
Rev 1.97 24 Mar 1997 15:57:54 OS
|
||
SetZoomType vor CalcVisArea
|
||
|
||
Rev 1.96 15 Mar 1997 11:27:24 OS
|
||
PageUp/Down-Buttons faerben
|
||
|
||
Rev 1.95 04 Mar 1997 19:11:42 OS
|
||
Spruenge im Text: zunaechst EnterStdMode
|
||
|
||
Rev 1.94 22 Feb 1997 20:15:48 OS
|
||
eigenes Image fuer Button
|
||
|
||
Rev 1.93 21 Feb 1997 17:03:00 OS
|
||
ImageButtons veraendert; Handler erweitert
|
||
|
||
Rev 1.92 20 Feb 1997 16:46:16 OS
|
||
Navigation funktioniert
|
||
|
||
Rev 1.91 19 Feb 1997 16:55:54 OS
|
||
dritter Button/Navigation
|
||
|
||
Rev 1.90 05 Feb 1997 08:29:14 MA
|
||
chg: unn?tzes label entfernt
|
||
|
||
Rev 1.89 30 Jan 1997 11:03:10 OS
|
||
UsrPrefs verdoppelt
|
||
|
||
Rev 1.88 11 Dec 1996 08:42:18 OS
|
||
ClickType am Ruler auswerten -> gfs. Einzuege-TabPage statt Tabulator
|
||
|
||
Rev 1.87 10 Dec 1996 19:07:06 MA
|
||
VertScrollbar
|
||
|
||
Rev 1.86 11 Nov 1996 11:10:52 MA
|
||
ResMgr
|
||
|
||
Rev 1.85 14 Oct 1996 09:02:02 OS
|
||
Readonly an den ViewOptions vor ApplyViewOptions einstellen
|
||
|
||
Rev 1.84 07 Oct 1996 09:58:08 OS
|
||
Aktivierung der Lineale im _Create abhaengig von der Aktivierung der View
|
||
|
||
Rev 1.83 23 Sep 1996 15:37:34 MA
|
||
fix: Zoomtype und Browser
|
||
|
||
Rev 1.82 12 Sep 1996 17:00:32 OS
|
||
GetAnyCurRect() ersetzt GetCur*Rect
|
||
|
||
Rev 1.81 28 Aug 1996 14:19:18 JP
|
||
ScrollBarBox: im FrameSet-Doc nicht das Sizeable-Flag setzen
|
||
|
||
Rev 1.80 14 Aug 1996 15:15:30 OS
|
||
SetAuto fuer BrowseMode nicht nur fuer HScrollbar
|
||
|
||
Rev 1.79 29 Jul 1996 15:47:14 MA
|
||
includes
|
||
|
||
Rev 1.78 12 Jul 1996 14:44:22 OS
|
||
vert. Scrollbar geht auch im BrowseMode zum ScrollHdl
|
||
|
||
Rev 1.77 05 Jul 1996 14:55:38 OS
|
||
Anzeige der akt. Seitennummer w<>hrend des Scrollens in der nicht-Browse-View
|
||
|
||
Rev 1.76 26 Jun 1996 15:02:04 OS
|
||
Aufruf von Dispatcher.Execute an 324 angepasst
|
||
|
||
Rev 1.75 19 Jun 1996 12:30:04 OM
|
||
Umstellung auf 323
|
||
|
||
Rev 1.74 10 Jun 1996 17:55:50 MA
|
||
Breite+HScroll fuer Browser
|
||
|
||
Rev 1.73 31 May 1996 07:52:04 OS
|
||
_CreateScrollbar: nach InvalidateBorder Pointer nochmal testen
|
||
|
||
Rev 1.72 24 May 1996 09:20:20 OS
|
||
neu: CreatePageButtons
|
||
|
||
Rev 1.71 09 May 1996 15:18:58 OS
|
||
HLineal ist immer existent und wird nur noch versteckt
|
||
|
||
Rev 1.70 06 May 1996 17:00:36 MA
|
||
chg: Scrollbars fuer browse und ole richtig
|
||
|
||
Rev 1.69 24 Apr 1996 15:02:12 OS
|
||
Umstellung UsrPref/ViewOption
|
||
|
||
------------------------------------------------------------------------*/
|
||
|