1 /*************************************************************************
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 * Copyright 2008 by Sun Microsystems, Inc.
7 * OpenOffice.org - a multi-platform office productivity suite
9 * $RCSfile: viscrs.hxx,v $
12 * This file is part of OpenOffice.org.
14 * OpenOffice.org is free software: you can redistribute it and/or modify
15 * it under the terms of the GNU Lesser General Public License version 3
16 * only, as published by the Free Software Foundation.
18 * OpenOffice.org is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU Lesser General Public License version 3 for more details
22 * (a copy is included in the LICENSE file that accompanied this code).
24 * You should have received a copy of the GNU Lesser General Public License
25 * version 3 along with OpenOffice.org. If not, see
26 * <http://www.openoffice.org/license.html>
27 * for a copy of the LGPLv3 License.
29 ************************************************************************/
33 #ifndef _CURSOR_HXX //autogen
34 #include <vcl/cursor.hxx>
38 #include "swregion.hxx"
47 // -------- Ab hier Klassen / Methoden fuer den nicht Text-Cursor ------
54 friend void _InitCore();
55 friend void _FinitCore();
65 const SwCrsrShell
* pCrsrShell
;
69 void _SetPosAndShow();
77 FASTBOOL
IsVisible() const { return bIsVisible
; }
78 FASTBOOL
IsDragCrsr() const { return bIsDragCrsr
; }
79 void SetDragCrsr( BOOL bFlag
= TRUE
) { bIsDragCrsr
= bFlag
; }
86 // ------ Ab hier Klassen / Methoden fuer die Selectionen -------
88 class SwSelPaintRects
: public SwRects
90 friend void _InitCore();
91 friend void _FinitCore();
93 static long nPixPtX
, nPixPtY
;
94 static MapMode
*pMapMode
;
97 const SwCrsrShell
* pCShell
;
100 virtual void FillRects() = 0;
108 const SwCrsrShell
* GetShell() const { return pCShell
; }
112 class SwShellCrsr
: public virtual SwCursor
, public SwSelPaintRects
114 // Dokument-Positionen der Start/End-Charakter einer SSelection
116 const SwPosition
* pPt
; // fuer Zuordung vom GetPoint() zum aPtPt
118 virtual void FillRects(); // fuer Table- und normalen Crsr
121 SwShellCrsr( const SwCrsrShell
& rCrsrSh
, const SwPosition
&rPos
);
122 virtual ~SwShellCrsr();
124 virtual operator SwShellCrsr
* ();
126 void Show(); // Update und zeige alle Selektionen an
128 const Point
& GetPtPos() const { return( SwPaM::GetPoint() == pPt
? aPtPt
: aMkPt
); }
129 Point
& GetPtPos() { return( SwPaM::GetPoint() == pPt
? aPtPt
: aMkPt
); }
130 const Point
& GetMkPos() const { return( SwPaM::GetMark() == pPt
? aPtPt
: aMkPt
); }
131 Point
& GetMkPos() { return( SwPaM::GetMark() == pPt
? aPtPt
: aMkPt
); }
132 const Point
& GetSttPos() const { return( SwPaM::Start() == pPt
? aPtPt
: aMkPt
); }
133 Point
& GetSttPos() { return( SwPaM::Start() == pPt
? aPtPt
: aMkPt
); }
134 const Point
& GetEndPos() const { return( SwPaM::End() == pPt
? aPtPt
: aMkPt
); }
135 Point
& GetEndPos() { return( SwPaM::End() == pPt
? aPtPt
: aMkPt
); }
140 FASTBOOL
UpDown( BOOL bUp
, USHORT nCnt
= 1 );
142 // TRUE: an die Position kann der Cursor gesetzt werden
145 // JP 05.03.98: zum Testen des UNO-Crsr Verhaltens hier die Implementierung
146 // am sichtbaren Cursor
149 DECL_FIXEDMEMPOOL_NEWDEL( SwShellCrsr
)
154 class SwShellTableCrsr
: public virtual SwShellCrsr
, public virtual SwTableCursor
156 // die Selection hat die gleiche Reihenfolge wie die
157 // TabellenBoxen. D.h., wird aus dem einen Array an einer Position
158 // etwas geloescht, dann muss es auch im anderen erfolgen!!
162 SwShellTableCrsr( const SwCrsrShell
& rCrsrSh
, const SwPosition
& rPos
);
163 virtual ~SwShellTableCrsr();
165 virtual operator SwShellTableCrsr
* ();
168 // Pruefe, ob sich der SPoint innerhalb der Tabellen-SSelection befindet
170 virtual void SetMark();
171 virtual operator SwShellCrsr
* ();
172 virtual operator SwTableCursor
* ();
174 // TRUE: an die Position kann der Cursor gesetzt werden
176 // JP 05.03.98: zum Testen des UNO-Crsr Verhaltens hier die Implementierung
177 // am sichtbaren Cursor
182 } //namespace binfilter
183 #endif // _VISCRS_HXX