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