xref: /trunk/main/svtools/source/inc/svimpicn.hxx (revision 914d351e5f5b84e4342a86d6ab8d4aca7308b9bd)
1*01aa44aaSAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
3*01aa44aaSAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4*01aa44aaSAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5*01aa44aaSAndrew Rist  * distributed with this work for additional information
6*01aa44aaSAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7*01aa44aaSAndrew Rist  * to you under the Apache License, Version 2.0 (the
8*01aa44aaSAndrew Rist  * "License"); you may not use this file except in compliance
9*01aa44aaSAndrew Rist  * with the License.  You may obtain a copy of the License at
10cdf0e10cSrcweir  *
11*01aa44aaSAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12cdf0e10cSrcweir  *
13*01aa44aaSAndrew Rist  * Unless required by applicable law or agreed to in writing,
14*01aa44aaSAndrew Rist  * software distributed under the License is distributed on an
15*01aa44aaSAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*01aa44aaSAndrew Rist  * KIND, either express or implied.  See the License for the
17*01aa44aaSAndrew Rist  * specific language governing permissions and limitations
18*01aa44aaSAndrew Rist  * under the License.
19cdf0e10cSrcweir  *
20*01aa44aaSAndrew Rist  *************************************************************/
21*01aa44aaSAndrew Rist 
22*01aa44aaSAndrew Rist 
23cdf0e10cSrcweir #ifndef _SVIMPICN_HXX
24cdf0e10cSrcweir #define _SVIMPICN_HXX
25cdf0e10cSrcweir 
26cdf0e10cSrcweir #ifndef _VIRDEV_HXX
27cdf0e10cSrcweir #include <vcl/virdev.hxx>
28cdf0e10cSrcweir #endif
29cdf0e10cSrcweir 
30cdf0e10cSrcweir #ifndef _SCRBAR_HXX
31cdf0e10cSrcweir #include <vcl/scrbar.hxx>
32cdf0e10cSrcweir #endif
33cdf0e10cSrcweir #include <limits.h>
34cdf0e10cSrcweir 
35cdf0e10cSrcweir class SvLBoxEntry;
36cdf0e10cSrcweir class SvLBoxTreeList;
37cdf0e10cSrcweir class SvImpIconView;
38cdf0e10cSrcweir class ImpIcnCursor;
39cdf0e10cSrcweir class SvPtrarr;
40cdf0e10cSrcweir 
41cdf0e10cSrcweir #define PAINTFLAG_HOR_CENTERED  0x0001
42cdf0e10cSrcweir #define PAINTFLAG_VER_CENTERED  0x0002
43cdf0e10cSrcweir 
44cdf0e10cSrcweir #define SELRECT_BORDER_OFFS -7
45cdf0e10cSrcweir // Flags
46cdf0e10cSrcweir #define F_VER_SBARSIZE_WITH_HBAR        0x00000001
47cdf0e10cSrcweir #define F_HOR_SBARSIZE_WITH_VBAR        0x00000002
48cdf0e10cSrcweir #define F_IGNORE_NEXT_MOUSEMOVE         0x00000004  // OS/2 only
49cdf0e10cSrcweir #define F_ENTRY_REMOVED                 0x00000008
50cdf0e10cSrcweir // ist gesetzt, wenn nach Clear oder Ctor mind. einmal gepaintet wurde
51cdf0e10cSrcweir #define F_PAINTED                       0x00000010
52cdf0e10cSrcweir #define F_ADD_MODE                      0x00000020
53cdf0e10cSrcweir #define F_MOVING_SIBLING                0x00000040
54cdf0e10cSrcweir #define F_SELRECT_VISIBLE               0x00000080
55cdf0e10cSrcweir #define F_CMD_ARRIVED                   0x00000100
56cdf0e10cSrcweir #define F_DRAG_SOURCE                   0x00000200
57cdf0e10cSrcweir #define F_GRIDMODE                      0x00000400
58cdf0e10cSrcweir // beim Einfuegen eines Eintrags ergibt sich dessen Position
59cdf0e10cSrcweir // durch simples Addieren auf die Position des zuletzt eingefuegten Eintrags
60cdf0e10cSrcweir #define F_GRID_INSERT                   0x00000800
61cdf0e10cSrcweir #define F_DOWN_CTRL                     0x00001000
62cdf0e10cSrcweir #define F_DOWN_DESELECT                 0x00002000
63cdf0e10cSrcweir // Hack fuer D&D: Hintergrund des Entries nicht painten
64cdf0e10cSrcweir #define F_NO_EMPHASIS                   0x00004000
65cdf0e10cSrcweir // Selektion per Gummiband
66cdf0e10cSrcweir #define F_RUBBERING                     0x00008000
67cdf0e10cSrcweir #define F_START_EDITTIMER_IN_MOUSEUP    0x00010000
68cdf0e10cSrcweir 
69cdf0e10cSrcweir class SvImpIconView
70cdf0e10cSrcweir {
71cdf0e10cSrcweir     friend class ImpIcnCursor;
72cdf0e10cSrcweir     ScrollBar       aVerSBar;
73cdf0e10cSrcweir     ScrollBar       aHorSBar;
74cdf0e10cSrcweir     Rectangle       aCurSelectionRect;
75cdf0e10cSrcweir     SvPtrarr        aSelectedRectList;
76cdf0e10cSrcweir     MouseEvent      aMouseMoveEvent;
77cdf0e10cSrcweir     Timer           aEditTimer;  // fuer Inplace-Editieren
78cdf0e10cSrcweir     Timer           aMouseMoveTimer; // generiert MouseMoves bei Gummibandselektion
79cdf0e10cSrcweir     // Boundrect des zuletzt eingefuegten Entries
80cdf0e10cSrcweir     Rectangle       aPrevBoundRect;
81cdf0e10cSrcweir     Size            aOutputSize;        // Pixel
82cdf0e10cSrcweir     Size            aVirtOutputSize;    // expandiert automatisch
83cdf0e10cSrcweir     Point           aDDLastEntryPos;
84cdf0e10cSrcweir     Point           aDDLastRectPos;
85cdf0e10cSrcweir 
86cdf0e10cSrcweir     SvLBoxTreeList* pModel;
87cdf0e10cSrcweir     SvIconView*     pView;
88cdf0e10cSrcweir     ImpIcnCursor*   pImpCursor;
89cdf0e10cSrcweir     long            nMaxVirtWidth;      // max.breite aVirtOutputSize
90cdf0e10cSrcweir     SvPtrarr*       pZOrderList;
91cdf0e10cSrcweir     long            nGridDX,
92cdf0e10cSrcweir                     nGridDY;
93cdf0e10cSrcweir     long            nHorSBarHeight,
94cdf0e10cSrcweir                     nVerSBarWidth;
95cdf0e10cSrcweir     int             nViewMode;
96cdf0e10cSrcweir     long            nHorDist;
97cdf0e10cSrcweir     long            nVerDist;
98cdf0e10cSrcweir     long            nMaxBmpWidth;
99cdf0e10cSrcweir     long            nMaxBmpHeight;
100cdf0e10cSrcweir     long            nMaxTextWidth;
101cdf0e10cSrcweir     long            nMaxBoundHeight; // Hoehe des hoechsten BoundRects
102cdf0e10cSrcweir     sal_uLong           nFlags;
103cdf0e10cSrcweir     sal_uLong           nCurUserEvent;
104cdf0e10cSrcweir     SvLBoxEntry*    pCurParent;
105cdf0e10cSrcweir     SvLBoxEntry*    pCursor;
106cdf0e10cSrcweir     SvLBoxEntry*    pNextCursor; // wird in MovingEntry gesetzt und ist
107cdf0e10cSrcweir                                  // nur in EntryMoved gueltig!
108cdf0e10cSrcweir     SvLBoxEntry*    pDDRefEntry;
109cdf0e10cSrcweir     VirtualDevice*  pDDDev;
110cdf0e10cSrcweir     VirtualDevice*  pDDBufDev;
111cdf0e10cSrcweir     VirtualDevice*  pDDTempDev;
112cdf0e10cSrcweir 
113cdf0e10cSrcweir     SvIconViewTextMode eTextMode;
114cdf0e10cSrcweir     sal_Bool            bMustRecalcBoundingRects;
115cdf0e10cSrcweir 
116cdf0e10cSrcweir     void            CheckAllSizes();
117cdf0e10cSrcweir     void            CheckSizes( SvLBoxEntry* pEntry,
118cdf0e10cSrcweir                         const SvIcnVwDataEntry* pViewData = 0  );
119cdf0e10cSrcweir     void            ShowCursor( sal_Bool bShow );
120cdf0e10cSrcweir 
121cdf0e10cSrcweir     void            SetNextEntryPos(const Point& rPos);
122cdf0e10cSrcweir     Point           FindNextEntryPos( const Size& rBoundSize );
123cdf0e10cSrcweir     void            ImpArrange();
124cdf0e10cSrcweir     void            AdjustVirtSize( const Rectangle& );
125cdf0e10cSrcweir     void            ResetVirtSize();
126cdf0e10cSrcweir     void            CheckScrollBars();
127cdf0e10cSrcweir 
128cdf0e10cSrcweir                     DECL_LINK( ScrollUpDownHdl, ScrollBar * );
129cdf0e10cSrcweir                     DECL_LINK( ScrollLeftRightHdl, ScrollBar * );
130cdf0e10cSrcweir                     DECL_LINK( MouseMoveTimeoutHdl, Timer* );
131cdf0e10cSrcweir                     DECL_LINK( EditTimeoutHdl, Timer* );
132cdf0e10cSrcweir                     DECL_LINK( UserEventHdl, void* );
133cdf0e10cSrcweir     void            AdjustScrollBars();
134cdf0e10cSrcweir     void            PositionScrollBars( long nRealWidth, long nRealHeight );
135cdf0e10cSrcweir     void            CalcDocPos( Point& aMousePos );
136cdf0e10cSrcweir     sal_Bool            GetResizeRect( Rectangle& );
137cdf0e10cSrcweir     void            PaintResizeRect( const Rectangle& );
138cdf0e10cSrcweir     SvLBoxEntry*    GetNewCursor();
139cdf0e10cSrcweir     void            ToggleSelection( SvLBoxEntry* );
140cdf0e10cSrcweir     void            DeselectAllBut( SvLBoxEntry* );
141cdf0e10cSrcweir     void            Center( SvLBoxEntry* pEntry, SvIcnVwDataEntry* ) const;
StopEditTimer()142cdf0e10cSrcweir     void            StopEditTimer() { aEditTimer.Stop(); }
StartEditTimer()143cdf0e10cSrcweir     void            StartEditTimer() { aEditTimer.Start(); }
144cdf0e10cSrcweir     void            ImpHideDDIcon();
145cdf0e10cSrcweir     void            ImpDrawXORRect( const Rectangle& rRect );
146cdf0e10cSrcweir     void            AddSelectedRect( const Rectangle&, short nOffset = SELRECT_BORDER_OFFS );
147cdf0e10cSrcweir     void            ClearSelectedRectList();
148cdf0e10cSrcweir     Rectangle       CalcMaxTextRect( const SvLBoxEntry* pEntry,
149cdf0e10cSrcweir                                     const SvIcnVwDataEntry* pViewData ) const;
150cdf0e10cSrcweir 
151cdf0e10cSrcweir     void            ClipAtVirtOutRect( Rectangle& rRect ) const;
152cdf0e10cSrcweir     void            AdjustAtGrid( const SvPtrarr& rRow, SvLBoxEntry* pStart=0 );
153cdf0e10cSrcweir     Point           AdjustAtGrid(
154cdf0e10cSrcweir                         const Rectangle& rCenterRect, // "Schwerpunkt" des Objekts (typ. Bmp-Rect)
155cdf0e10cSrcweir                         const Rectangle& rBoundRect ) const;
156cdf0e10cSrcweir     SvIconViewTextMode GetEntryTextModeSmart( const SvLBoxEntry* pEntry,
157cdf0e10cSrcweir                         const SvIcnVwDataEntry* pViewData ) const;
158cdf0e10cSrcweir 
159cdf0e10cSrcweir     sal_Bool            CheckVerScrollBar();
160cdf0e10cSrcweir     sal_Bool            CheckHorScrollBar();
161cdf0e10cSrcweir     void            CancelUserEvent();
162cdf0e10cSrcweir 
163cdf0e10cSrcweir public:
164cdf0e10cSrcweir 
165cdf0e10cSrcweir                     SvImpIconView( SvIconView* pView, SvLBoxTreeList*, WinBits nWinStyle );
166cdf0e10cSrcweir                     ~SvImpIconView();
167cdf0e10cSrcweir 
168cdf0e10cSrcweir     void            Clear( sal_Bool bInCtor = sal_False );
169cdf0e10cSrcweir     void            SetStyle( const WinBits i_nWinStyle );
SetModel(SvLBoxTreeList * pTree,SvLBoxEntry * pParent)170cdf0e10cSrcweir     void            SetModel( SvLBoxTreeList* pTree, SvLBoxEntry* pParent )
171cdf0e10cSrcweir                         { pModel = pTree; SetCurParent(pParent); }
172cdf0e10cSrcweir     void            EntryInserted( SvLBoxEntry*);
173cdf0e10cSrcweir     void            RemovingEntry( SvLBoxEntry* pEntry );
174cdf0e10cSrcweir     void            EntryRemoved();
175cdf0e10cSrcweir     void            MovingEntry( SvLBoxEntry* pEntry );
176cdf0e10cSrcweir     void            EntryMoved( SvLBoxEntry* pEntry );
177cdf0e10cSrcweir     void            TreeInserted( SvLBoxEntry* pEntry );
178cdf0e10cSrcweir     void            ChangedFont();
179cdf0e10cSrcweir     void            ModelHasEntryInvalidated( SvListEntry* );
180cdf0e10cSrcweir     void            EntryExpanded( SvLBoxEntry* pEntry );
181cdf0e10cSrcweir     void            EntryCollapsed( SvLBoxEntry* pEntry );
182cdf0e10cSrcweir     void            CollapsingEntry( SvLBoxEntry* pEntry );
183cdf0e10cSrcweir     void            EntrySelected( SvLBoxEntry*, sal_Bool bSelect );
184cdf0e10cSrcweir 
185cdf0e10cSrcweir     void            Paint( const Rectangle& rRect );
186cdf0e10cSrcweir     void            RepaintSelectionItems();
187cdf0e10cSrcweir     void            MouseButtonDown( const MouseEvent& );
188cdf0e10cSrcweir     void            MouseButtonUp( const MouseEvent& );
189cdf0e10cSrcweir     void            MouseMove( const MouseEvent&);
190cdf0e10cSrcweir     sal_Bool            KeyInput( const KeyEvent& );
191cdf0e10cSrcweir     void            Resize();
192cdf0e10cSrcweir     void            GetFocus();
193cdf0e10cSrcweir     void            LoseFocus();
194cdf0e10cSrcweir     void            UpdateAll();
195cdf0e10cSrcweir     void            PaintEntry( SvLBoxEntry* pEntry,
196cdf0e10cSrcweir                         SvIcnVwDataEntry* pViewData = 0 );
197cdf0e10cSrcweir     void            PaintEntry( SvLBoxEntry*, const Point&,
198cdf0e10cSrcweir                         SvIcnVwDataEntry* pViewData = 0, OutputDevice* pOut = 0);
199cdf0e10cSrcweir     void            SetEntryPosition( SvLBoxEntry* pEntry, const Point& rPos,
200cdf0e10cSrcweir                                       sal_Bool bAdjustRow = sal_False,
201cdf0e10cSrcweir                                       sal_Bool bCheckScrollBars = sal_False );
202cdf0e10cSrcweir     void            InvalidateEntry( SvLBoxEntry* );
203cdf0e10cSrcweir     void            ViewDataInitialized( SvLBoxEntry* pEntry );
204cdf0e10cSrcweir     SvLBoxItem*     GetItem( SvLBoxEntry*, const Point& rAbsPos );
205cdf0e10cSrcweir 
206cdf0e10cSrcweir     void            SetNoSelection();
207cdf0e10cSrcweir     void            SetDragDropMode( DragDropMode eDDMode );
208cdf0e10cSrcweir     void            SetSelectionMode( SelectionMode eSelMode  );
209cdf0e10cSrcweir 
210cdf0e10cSrcweir     void            SttDrag( const Point& rPos );
211cdf0e10cSrcweir     void            EndDrag();
212cdf0e10cSrcweir 
GetCurEntry() const213cdf0e10cSrcweir     SvLBoxEntry*    GetCurEntry() const { return pCursor; }
214cdf0e10cSrcweir     void            SetCursor( SvLBoxEntry* );
215cdf0e10cSrcweir 
216cdf0e10cSrcweir     sal_Bool            IsEntryInView( SvLBoxEntry* );
217cdf0e10cSrcweir     SvLBoxEntry*    GetEntry( const Point& rDocPos );
218cdf0e10cSrcweir     SvLBoxEntry*    GetNextEntry( const Point& rDocPos, SvLBoxEntry* pCurEntry );
219cdf0e10cSrcweir     SvLBoxEntry*    GetPrevEntry( const Point& rDocPos, SvLBoxEntry* pCurEntry  );
220cdf0e10cSrcweir 
221cdf0e10cSrcweir     Point           GetEntryPosition( SvLBoxEntry* );
222cdf0e10cSrcweir     void            MakeVisible( SvLBoxEntry* pEntry );
223cdf0e10cSrcweir 
224cdf0e10cSrcweir     void            Arrange();
225cdf0e10cSrcweir 
226cdf0e10cSrcweir     void            SetSpaceBetweenEntries( long nHor, long Ver );
GetHorSpaceBetweenEntries() const227cdf0e10cSrcweir     long            GetHorSpaceBetweenEntries() const { return nHorDist; }
GetVerSpaceBetweenEntries() const228cdf0e10cSrcweir     long            GetVerSpaceBetweenEntries() const { return nVerDist; }
229cdf0e10cSrcweir 
230cdf0e10cSrcweir     Rectangle       CalcFocusRect( SvLBoxEntry* );
231cdf0e10cSrcweir 
232cdf0e10cSrcweir     Rectangle       CalcBmpRect( SvLBoxEntry*, const Point* pPos = 0,
233cdf0e10cSrcweir                         SvIcnVwDataEntry* pViewData=0 );
234cdf0e10cSrcweir     Rectangle       CalcTextRect( SvLBoxEntry*, SvLBoxString* pItem = 0,
235cdf0e10cSrcweir                                   const Point* pPos = 0,
236cdf0e10cSrcweir                                   sal_Bool bForInplaceEdit = sal_False,
237cdf0e10cSrcweir                                   SvIcnVwDataEntry* pViewData = 0 );
238cdf0e10cSrcweir 
239cdf0e10cSrcweir     long            CalcBoundingWidth( SvLBoxEntry*, const SvIcnVwDataEntry* pViewData = 0) const;
240cdf0e10cSrcweir     long            CalcBoundingHeight( SvLBoxEntry*, const SvIcnVwDataEntry* pViewData= 0 ) const;
241cdf0e10cSrcweir     Size            CalcBoundingSize( SvLBoxEntry*,
242cdf0e10cSrcweir                         SvIcnVwDataEntry* pViewData = 0 ) const;
243cdf0e10cSrcweir     void            FindBoundingRect( SvLBoxEntry* pEntry,
244cdf0e10cSrcweir                         SvIcnVwDataEntry* pViewData = 0 );
245cdf0e10cSrcweir     // berechnet alle BoundRects neu
246cdf0e10cSrcweir     void            RecalcAllBoundingRects();
247cdf0e10cSrcweir     // berechnet alle ungueltigen BoundRects neu
248cdf0e10cSrcweir     void            RecalcAllBoundingRectsSmart();
249cdf0e10cSrcweir     const Rectangle&  GetBoundingRect( SvLBoxEntry*,
250cdf0e10cSrcweir                         SvIcnVwDataEntry* pViewData=0);
251cdf0e10cSrcweir     void            InvalidateBoundingRect( SvLBoxEntry* );
InvalidateBoundingRect(Rectangle & rRect)252cdf0e10cSrcweir     void            InvalidateBoundingRect( Rectangle& rRect ) { rRect.Right() = LONG_MAX; }
IsBoundingRectValid(const Rectangle & rRect) const253cdf0e10cSrcweir     sal_Bool            IsBoundingRectValid( const Rectangle& rRect ) const { return (sal_Bool)( rRect.Right() != LONG_MAX ); }
254cdf0e10cSrcweir 
255cdf0e10cSrcweir     void            PaintEmphasis( const Rectangle&, sal_Bool bSelected,
256cdf0e10cSrcweir                                    sal_Bool bCursored, OutputDevice* pOut = 0 );
257cdf0e10cSrcweir     void            PaintItem( const Rectangle& rRect, SvLBoxItem* pItem,
258cdf0e10cSrcweir                         SvLBoxEntry* pEntry, sal_uInt16 nPaintFlags, OutputDevice* pOut = 0 );
259cdf0e10cSrcweir     // berechnet alle BoundingRects neu, wenn bMustRecalcBoundingRects == sal_True
CheckBoundingRects()260cdf0e10cSrcweir     void            CheckBoundingRects() { if (bMustRecalcBoundingRects) RecalcAllBoundingRects(); }
261cdf0e10cSrcweir     // berechnet alle invalidierten BoundingRects neu
262cdf0e10cSrcweir     void            UpdateBoundingRects();
263cdf0e10cSrcweir     void            ShowTargetEmphasis( SvLBoxEntry* pEntry, sal_Bool bShow );
264cdf0e10cSrcweir     SvLBoxEntry*    GetDropTarget( const Point& rPosPixel );
265cdf0e10cSrcweir     sal_Bool            NotifyMoving( SvLBoxEntry* pTarget, SvLBoxEntry* pEntry,
266cdf0e10cSrcweir                         SvLBoxEntry*& rpNewParent, sal_uLong& rNewChildPos );
267cdf0e10cSrcweir     sal_Bool            NotifyCopying( SvLBoxEntry* pTarget, SvLBoxEntry* pEntry,
268cdf0e10cSrcweir                         SvLBoxEntry*& rpNewParent, sal_uLong& rNewChildPos );
269cdf0e10cSrcweir 
270cdf0e10cSrcweir     void            WriteDragServerInfo( const Point&, SvLBoxDDInfo* );
271cdf0e10cSrcweir     void            ReadDragServerInfo( const Point&, SvLBoxDDInfo* );
272cdf0e10cSrcweir     void            ToTop( SvLBoxEntry* );
273cdf0e10cSrcweir 
274cdf0e10cSrcweir     void            SetCurParent( SvLBoxEntry* pNewParent );
GetCurParent() const275cdf0e10cSrcweir     SvLBoxEntry*    GetCurParent() const { return pCurParent; }
276cdf0e10cSrcweir     sal_uInt16          GetSelectionCount() const;
277cdf0e10cSrcweir     void            SetGrid( long nDX, long nDY );
278cdf0e10cSrcweir     void            Scroll( long nDeltaX, long nDeltaY, sal_Bool bScrollBar = sal_False );
279cdf0e10cSrcweir     const Size&     GetItemSize( SvIconView* pView, SvLBoxEntry*, SvLBoxItem*,
280cdf0e10cSrcweir                         const SvIcnVwDataEntry* pViewData = 0 ) const;
281cdf0e10cSrcweir     void            PrepareCommandEvent( const Point& rPt );
282cdf0e10cSrcweir 
283cdf0e10cSrcweir     void            HideDDIcon();
284cdf0e10cSrcweir     void            ShowDDIcon( SvLBoxEntry* pRefEntry, const Point& rPos );
285cdf0e10cSrcweir     void            HideShowDDIcon( SvLBoxEntry* pRefEntry, const Point& rPos );
286cdf0e10cSrcweir 
287cdf0e10cSrcweir     SvLBoxEntry*    mpViewData;
288cdf0e10cSrcweir 
289cdf0e10cSrcweir     sal_Bool            IsOver( SvPtrarr* pSelectedRectList, const Rectangle& rEntryBoundRect ) const;
290cdf0e10cSrcweir     void            SelectRect( const Rectangle&, sal_Bool bAdd = sal_True,
291cdf0e10cSrcweir                         SvPtrarr* pOtherRects = 0,
292cdf0e10cSrcweir                         short nOffs = SELRECT_BORDER_OFFS );
293cdf0e10cSrcweir     void            DrawSelectionRect( const Rectangle& );
294cdf0e10cSrcweir     void            HideSelectionRect();
295cdf0e10cSrcweir     void            CalcScrollOffsets( const Point& rRefPosPixel,
296cdf0e10cSrcweir                         long& rX, long& rY, sal_Bool bDragDrop = sal_False,
297cdf0e10cSrcweir                         sal_uInt16 nBorderWidth = 10 );
298cdf0e10cSrcweir     void            EndTracking();
299cdf0e10cSrcweir     sal_Bool            IsTextHit( SvLBoxEntry* pEntry, const Point& rDocPos );
300cdf0e10cSrcweir     void            MakeVisible( const Rectangle& rDocPos,sal_Bool bInScrollBarEvent=sal_False);
301cdf0e10cSrcweir     void            AdjustAtGrid( SvLBoxEntry* pStart = 0 );
302cdf0e10cSrcweir     void            SetTextMode( SvIconViewTextMode, SvLBoxEntry* pEntry = 0 );
303cdf0e10cSrcweir     SvIconViewTextMode GetTextMode( const SvLBoxEntry* pEntry = 0,
304cdf0e10cSrcweir                     const SvIcnVwDataEntry* pViewData = 0 ) const;
305cdf0e10cSrcweir     void            ShowFocusRect( const SvLBoxEntry* pEntry );
306cdf0e10cSrcweir };
307cdf0e10cSrcweir 
MakeVisible(SvLBoxEntry * pEntry)308cdf0e10cSrcweir inline void SvImpIconView::MakeVisible( SvLBoxEntry* pEntry )
309cdf0e10cSrcweir {
310cdf0e10cSrcweir     const Rectangle& rRect = GetBoundingRect( pEntry );
311cdf0e10cSrcweir     MakeVisible( rRect );
312cdf0e10cSrcweir }
313cdf0e10cSrcweir 
314cdf0e10cSrcweir #endif // #ifndef _SVIMPICN_HXX
315