Kaydet (Commit) ca402fa0 authored tarafından Thomas Arnhold's avatar Thomas Arnhold

callcatcher: completely remove SvIconView

üst 74140442
...@@ -112,9 +112,7 @@ $(eval $(call gb_Library_add_exception_objects,svt,\ ...@@ -112,9 +112,7 @@ $(eval $(call gb_Library_add_exception_objects,svt,\
svtools/source/contnr/imivctl1 \ svtools/source/contnr/imivctl1 \
svtools/source/contnr/imivctl2 \ svtools/source/contnr/imivctl2 \
svtools/source/contnr/ivctrl \ svtools/source/contnr/ivctrl \
svtools/source/contnr/svicnvw \
svtools/source/contnr/svimpbox \ svtools/source/contnr/svimpbox \
svtools/source/contnr/svimpicn \
svtools/source/contnr/svlbitm \ svtools/source/contnr/svlbitm \
svtools/source/contnr/svlbox \ svtools/source/contnr/svlbox \
svtools/source/contnr/svtabbx \ svtools/source/contnr/svtabbx \
......
...@@ -133,7 +133,6 @@ $(eval $(call gb_Package_add_file,svtools_inc,inc/svtools/statusbarcontroller.hx ...@@ -133,7 +133,6 @@ $(eval $(call gb_Package_add_file,svtools_inc,inc/svtools/statusbarcontroller.hx
$(eval $(call gb_Package_add_file,svtools_inc,inc/svtools/stdctrl.hxx,svtools/stdctrl.hxx)) $(eval $(call gb_Package_add_file,svtools_inc,inc/svtools/stdctrl.hxx,svtools/stdctrl.hxx))
$(eval $(call gb_Package_add_file,svtools_inc,inc/svtools/stdmenu.hxx,svtools/stdmenu.hxx)) $(eval $(call gb_Package_add_file,svtools_inc,inc/svtools/stdmenu.hxx,svtools/stdmenu.hxx))
$(eval $(call gb_Package_add_file,svtools_inc,inc/svtools/stringtransfer.hxx,svtools/stringtransfer.hxx)) $(eval $(call gb_Package_add_file,svtools_inc,inc/svtools/stringtransfer.hxx,svtools/stringtransfer.hxx))
$(eval $(call gb_Package_add_file,svtools_inc,inc/svtools/svicnvw.hxx,svtools/svicnvw.hxx))
$(eval $(call gb_Package_add_file,svtools_inc,inc/svtools/svlbitm.hxx,svtools/svlbitm.hxx)) $(eval $(call gb_Package_add_file,svtools_inc,inc/svtools/svlbitm.hxx,svtools/svlbitm.hxx))
$(eval $(call gb_Package_add_file,svtools_inc,inc/svtools/svlbox.hxx,svtools/svlbox.hxx)) $(eval $(call gb_Package_add_file,svtools_inc,inc/svtools/svlbox.hxx,svtools/svlbox.hxx))
$(eval $(call gb_Package_add_file,svtools_inc,inc/svtools/svmedit.hxx,svtools/svmedit.hxx)) $(eval $(call gb_Package_add_file,svtools_inc,inc/svtools/svmedit.hxx,svtools/svmedit.hxx))
......
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*************************************************************************
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* Copyright 2000, 2010 Oracle and/or its affiliates.
*
* OpenOffice.org - a multi-platform office productivity suite
*
* This file is part of OpenOffice.org.
*
* OpenOffice.org is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License version 3
* only, as published by the Free Software Foundation.
*
* OpenOffice.org 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 version 3 for more details
* (a copy is included in the LICENSE file that accompanied this code).
*
* You should have received a copy of the GNU Lesser General Public License
* version 3 along with OpenOffice.org. If not, see
* <http://www.openoffice.org/license.html>
* for a copy of the LGPLv3 License.
*
************************************************************************/
#ifndef _SVICNVW_HXX
#define _SVICNVW_HXX
#include <vcl/image.hxx>
#include <svtools/svlbox.hxx>
class SvImpIconView;
class SvLBoxEntry;
class SvLBoxItem;
class SvLBoxString;
class SvLBoxContextBmp;
class SvPtrarr;
#define WB_ICON 0x0001
#define WB_NAME 0x0002
#define WB_TEXT 0x0004
#define WB_FLOW 0x0008
#define ICNVW_FLAG_POS_LOCKED 0x0001
#define ICNVW_FLAG_USER1 0x1000
#define ICNVW_FLAG_USER2 0x2000
#define ICNVW_FLAG_USER3 0x4000
#define ICNVW_FLAG_USER4 0x8000
enum SvIconViewTextMode
{
ShowTextFull = 1,
ShowTextShort,
ShowTextSmart, // not implemented
ShowTextDontKnow // only for entries (uses config? from the view)
};
class SvIcnVwDataEntry : public SvViewDataEntry
{
friend class SvImpIconView;
sal_uInt16 nIcnVwFlags;
SvIconViewTextMode eTextMode;
public:
Rectangle aRect; // Bounding-Rect of the Entry
Rectangle aGridRect; // set in grid mode
Size aTextSize; // set in grid mode only
sal_uInt16 nX,nY; // for keyboard control
SvIcnVwDataEntry();
virtual ~SvIcnVwDataEntry();
sal_Bool IsEntryPosLocked() const { return (sal_Bool)((nIcnVwFlags & ICNVW_FLAG_POS_LOCKED) !=0); }
void ClearVwFlags( sal_uInt16 nMask ) { nIcnVwFlags &= (~nMask); }
void SetVwFlags( sal_uInt16 nMask ) { nIcnVwFlags |= nMask; }
sal_uInt16 GetVwFlags() const { return nIcnVwFlags; }
SvIconViewTextMode GetTextMode() const { return eTextMode; }
};
#define SV_LISTBOX_ID_ICONVIEW 2
class SvIconView : public SvLBox
{
friend class SvImpIconView;
SvImpIconView* pImp;
Image aCollapsedEntryBmp;
Image aExpandedEntryBmp;
sal_uInt16 nIcnVwFlags;
void SetModel( SvLBoxTreeList* );
protected:
using SvLBox::CreateEntry;
SvLBoxEntry* CreateEntry( const XubString&, const Image&, const Image&);
void ViewDataInitialized( SvLBoxEntry* );
virtual SvViewData* CreateViewData( SvListEntry* );
virtual void InitViewData( SvViewData* pData, SvListEntry* pEntry );
void EditingRequest(SvLBoxEntry*,SvLBoxItem*,const Point& );
void EditedText( const XubString& );
void EditItemText( SvLBoxEntry*,SvLBoxItem*,const Selection& );
SvLBoxEntry* pCurEdEntry;
SvLBoxItem* pCurEdItem;
virtual void WriteDragServerInfo( const Point&, SvLBoxDDInfo* );
virtual void ReadDragServerInfo( const Point&, SvLBoxDDInfo* );
virtual void Command( const CommandEvent& rCEvt );
virtual void PreparePaint( SvLBoxEntry* );
virtual void StateChanged( StateChangedType nStateChange );
public:
SvIconView( Window* pParent,WinBits nWinStyle=0 );
SvIconView( Window* pParent,const ResId& rResId );
~SvIconView();
void DisconnectFromModel();
SvLBoxEntry* InsertEntry( const XubString& rText, SvLBoxEntry* pParent = 0,
sal_Bool bChildsOnDemand = sal_False,
sal_uLong nPos=LIST_APPEND );
SvLBoxEntry* InsertEntry( const XubString& rText,
const Image& rExpandedEntryBmp,
const Image& rCollapsedEntryBmp,
SvLBoxEntry* pParent = 0,
sal_Bool bChildsOnDemand = sal_False,
sal_uLong nPos = LIST_APPEND );
const Image& GetDefaultExpandedEntryBmp() const { return aExpandedEntryBmp;}
const Image& GetDefaultCollapsedEntryBmp() const { return aCollapsedEntryBmp;}
void SetDefaultExpandedEntryBmp( const Image& rBmp) { aExpandedEntryBmp=rBmp;}
void SetDefaultCollapsedEntryBmp( const Image& rBmp ) { aCollapsedEntryBmp=rBmp;}
void SetEntryText(SvLBoxEntry*, const XubString& );
void SetExpandedEntryBmp(SvLBoxEntry*, const Image& );
void SetCollapsedEntryBmp(SvLBoxEntry*, const Image& );
XubString GetEntryText(SvLBoxEntry*) const;
Image GetExpandedEntryBmp(SvLBoxEntry*) const;
Image GetCollapsedEntryBmp(SvLBoxEntry*) const;
virtual SvLBoxEntry* CloneEntry( SvLBoxEntry* pSource );
virtual sal_uInt16 IsA();
virtual void RequestingChilds( SvLBoxEntry* pParent );
virtual void Paint( const Rectangle& rRect );
virtual void MouseButtonDown( const MouseEvent& rMEvt );
virtual void MouseButtonUp( const MouseEvent& rMEvt );
virtual void MouseMove( const MouseEvent& rMEvt );
virtual void KeyInput( const KeyEvent& rKEvt );
virtual void Resize();
virtual void GetFocus();
virtual void LoseFocus();
void SetUpdateMode( sal_Bool );
using SvListView::SetModel;
virtual void SetModel( SvLBoxTreeList*, SvLBoxEntry* pParent );
virtual void ModelHasCleared();
virtual void ModelHasInserted( SvListEntry* pEntry );
virtual void ModelHasInsertedTree( SvListEntry* pEntry );
virtual void ModelIsMoving(SvListEntry* pSource,
SvListEntry* pTargetParent, sal_uLong nChildPos );
virtual void ModelHasMoved(SvListEntry* pSource );
virtual void ModelIsRemoving( SvListEntry* pEntry );
virtual void ModelHasRemoved( SvListEntry* pEntry );
virtual void ModelHasEntryInvalidated( SvListEntry* pEntry );
virtual void ShowTargetEmphasis( SvLBoxEntry*, sal_Bool bShow );
using Window::GetDropTarget;
virtual SvLBoxEntry* GetDropTarget( const Point& );
virtual Region GetDragRegion() const;
// NotifyMoving/Copying is overloaded, since GetDropTarget
// returns a "magic pointer" if the drop happens in/on an empty
// area(?) of the IconView
virtual sal_Bool NotifyMoving( SvLBoxEntry* pTarget, SvLBoxEntry* pEntry,
SvLBoxEntry*& rpNewParent, sal_uLong& rNewChildPos);
virtual sal_Bool NotifyCopying( SvLBoxEntry* pTarget, SvLBoxEntry* pEntry,
SvLBoxEntry*& rpNewParent, sal_uLong& rNewChildPos);
// returns TopLeft of the BoundingRect. Add MapMode.Origin to get the
// position relative to the window
Point GetEntryPosition( SvLBoxEntry* ) const;
void SetEntryPosition( SvLBoxEntry*, const Point& rDocPos);
void SetEntryPosition( SvLBoxEntry*, const Point& rDocPos,
sal_Bool bAdjustAtGrid );
void SetFont( const Font& rFont );
void SetDefaultFont();
using SvLBox::GetEntry;
SvLBoxEntry* GetEntry( const Point& rPixPos, sal_Bool ) const;
// returns the entry just above pCurEntry (z-wise)
SvLBoxEntry* GetNextEntry( const Point& rPixPos, SvLBoxEntry* pCurEntry, sal_Bool ) const;
// returns the entry just below pCurEntry (z-wise)
SvLBoxEntry* GetPrevEntry( const Point& rPixPos, SvLBoxEntry* pCurEntry, sal_Bool ) const;
SvLBoxEntry* GetEntryFromLogicPos( const Point& rDocPos ) const;
virtual void PaintEntry( SvLBoxEntry* );
virtual void PaintEntry( SvLBoxEntry*, const Point& rDocPos );
Rectangle GetFocusRect( SvLBoxEntry* );
void InvalidateEntry( SvLBoxEntry* );
void MakeVisible( SvLBoxEntry* );
void SetDragDropMode( DragDropMode );
void SetSelectionMode( SelectionMode );
using SvListView::Select;
sal_Bool Select( SvLBoxEntry* pEntry, sal_Bool bSelect=sal_True );
void SelectAll( sal_Bool bSelect, sal_Bool bPaint=sal_True );
virtual void SetCurEntry( SvLBoxEntry* _pEntry );
virtual SvLBoxEntry*
GetCurEntry() const;
// locigal coordinates
void SelectRect(
const Rectangle& rRect,
sal_Bool bAdd = sal_False,
// inverts the intersection with rRect
// (ignored if bAdd == sal_False)
SvPtrarr* pOtherRects = 0,
short nBorderOffs = -5 );
sal_uLong GetSelectionCount() const;
virtual void Arrange();
void SetSpaceBetweenEntries( long nHor, long Ver );
long GetHorSpaceBetweenEntries();
long GetVerSpaceBetweenEntries();
void EnableInplaceEditing( sal_Bool bEnable );
void EditEntry( SvLBoxEntry* pEntry = 0 );
virtual sal_Bool EditingEntry( SvLBoxEntry* pEntry, Selection& );
virtual sal_Bool EditedEntry( SvLBoxEntry*, const XubString& rNewText );
void SetCurParent( SvLBoxEntry* pNewParent );
SvLBoxEntry* GetCurParent() const;
virtual void ModelNotification( sal_uInt16 nActionId, SvListEntry* pEntry1,
SvListEntry* pEntry2, sal_uLong nPos );
// pass (0, 0) to switch off grid mode
void SetGrid( long nDX, long nDY );
// nDeltaY < 0 : View moves up relative to Doc
// nDeltaY > 0 : View moves down relative to Doc
// nDeltaX < 0 : View moves left relative to Doc
// nDeltaX > 0 : View moves right relative to Doc
using Window::Scroll;
virtual void Scroll( long nDeltaX, long nDeltaY, sal_uInt16 nFlags = 0 );
virtual void PrepareCommandEvent( const CommandEvent& );
virtual void StartDrag( sal_Int8 nAction, const Point& );
virtual void DragFinished( sal_Int8 );
virtual sal_Int8 AcceptDrop( const AcceptDropEvent& rEvt );
using SvLBox::ExecuteDrop;
virtual sal_Int8 ExecuteDrop( const ExecuteDropEvent& rEvt );
void ShowDDIcon( SvLBoxEntry* pRefEntry, const Point& rPos );
void HideDDIcon();
void HideShowDDIcon( SvLBoxEntry* pRefEntry, const Point& rPos );
// to scroll during Drag&Drop
void CalcScrollOffsets(
const Point& rRefPosPixel,
long& rScrollX,
long& rScrollY,
sal_Bool bInDragDrop = sal_False,
sal_uInt16 nBorderWidth = 10 );
using Window::EndTracking;
void EndTracking();
void AdjustAtGrid( SvLBoxEntry* pEntry = 0 );
void LockEntryPos( SvLBoxEntry* pEntry, sal_Bool bLock = sal_True );
sal_Bool IsEntryPosLocked( const SvLBoxEntry* pEntry ) const;
void SetTextMode( SvIconViewTextMode, SvLBoxEntry* pEntry = 0 );
SvIconViewTextMode GetTextMode( const SvLBoxEntry* pEntry = 0 ) const;
void ShowFocusRect( const SvLBoxEntry* pEntry );
};
#endif
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*************************************************************************
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* Copyright 2000, 2010 Oracle and/or its affiliates.
*
* OpenOffice.org - a multi-platform office productivity suite
*
* This file is part of OpenOffice.org.
*
* OpenOffice.org is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License version 3
* only, as published by the Free Software Foundation.
*
* OpenOffice.org 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 version 3 for more details
* (a copy is included in the LICENSE file that accompanied this code).
*
* You should have received a copy of the GNU Lesser General Public License
* version 3 along with OpenOffice.org. If not, see
* <http://www.openoffice.org/license.html>
* for a copy of the LGPLv3 License.
*
************************************************************************/
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_svtools.hxx"
#include <svtools/svlbox.hxx>
#include <svtools/svicnvw.hxx>
#include <svimpicn.hxx>
#include <svtools/svlbitm.hxx>
#define ICNVW_BLOCK_ENTRYINS 0x0001
SvIcnVwDataEntry::SvIcnVwDataEntry()
: nIcnVwFlags(0),eTextMode(ShowTextDontKnow)
{
}
SvIcnVwDataEntry::~SvIcnVwDataEntry()
{
}
SvIconView::SvIconView( Window* pParent, WinBits nWinStyle ) :
SvLBox( pParent, nWinStyle | WB_BORDER )
{
nIcnVwFlags = 0;
pImp = new SvImpIconView( this, GetModel(), nWinStyle | WB_ICON );
pImp->mpViewData = 0;
SetSelectionMode( SINGLE_SELECTION );
SetLineColor();
const StyleSettings& rStyleSettings = GetSettings().GetStyleSettings();
SetBackground( Wallpaper( rStyleSettings.GetFieldColor() ) );
SetDefaultFont();
}
SvIconView::SvIconView( Window* pParent , const ResId& rResId ) :
SvLBox( pParent, rResId )
{
pImp = new SvImpIconView( this, GetModel(), WB_BORDER | WB_ICON );
nIcnVwFlags = 0;
pImp->mpViewData = 0;
SetLineColor();
const StyleSettings& rStyleSettings = GetSettings().GetStyleSettings();
SetBackground( Wallpaper( rStyleSettings.GetFieldColor() ) );
SetDefaultFont();
pImp->SetSelectionMode( GetSelectionMode() );
}
SvIconView::~SvIconView()
{
delete pImp;
}
void SvIconView::SetDefaultFont()
{
SetFont( GetFont() );
}
SvLBoxEntry* SvIconView::CreateEntry( const XubString& rStr,
const Image& rCollEntryBmp, const Image& rExpEntryBmp )
{
SvLBoxEntry* pEntry = new SvLBoxEntry;
SvLBoxContextBmp* pContextBmp =
new SvLBoxContextBmp( pEntry,0, rCollEntryBmp,rExpEntryBmp, 0xffff );
pEntry->AddItem( pContextBmp );
SvLBoxString* pString = new SvLBoxString( pEntry, 0, rStr );
pEntry->AddItem( pString );
return pEntry;
}
void SvIconView::DisconnectFromModel()
{
SvLBox::DisconnectFromModel();
pImp->SetModel( GetModel(), 0 );
}
SvLBoxEntry* SvIconView::InsertEntry( const XubString& rText,
SvLBoxEntry* pParent, sal_Bool bChildsOnDemand, sal_uLong nPos )
{
SvLBoxEntry* pEntry = CreateEntry(
rText, aCollapsedEntryBmp, aExpandedEntryBmp );
pEntry->EnableChildsOnDemand( bChildsOnDemand );
if ( !pParent )
SvLBox::Insert( pEntry, nPos );
else
SvLBox::Insert( pEntry, pParent, nPos );
return pEntry;
}
SvLBoxEntry* SvIconView::InsertEntry( const XubString& rText,
const Image& rExpEntryBmp,
const Image& rCollEntryBmp,
SvLBoxEntry* pParent, sal_Bool bChildsOnDemand, sal_uLong nPos)
{
SvLBoxEntry* pEntry = CreateEntry(
rText, rCollEntryBmp, rExpEntryBmp );
pEntry->EnableChildsOnDemand( bChildsOnDemand );
if ( !pParent )
SvLBox::Insert( pEntry, nPos );
else
SvLBox::Insert( pEntry, pParent, nPos );
return pEntry;
}
void SvIconView::SetEntryText(SvLBoxEntry* pEntry, const XubString& rStr)
{
SvLBoxString* pItem = (SvLBoxString*)(pEntry->GetFirstItem(SV_ITEM_ID_LBOXSTRING));
if ( pItem )
{
pItem->SetText( pEntry, rStr );
GetModel()->InvalidateEntry( pEntry );
}
}
void SvIconView::SetExpandedEntryBmp(SvLBoxEntry* pEntry, const Image& rBmp)
{
SvLBoxContextBmp* pItem = (SvLBoxContextBmp*)(pEntry->GetFirstItem(SV_ITEM_ID_LBOXCONTEXTBMP));
if ( pItem )
{
pItem->SetBitmap2( rBmp );
GetModel()->InvalidateEntry( pEntry );
}
}
void SvIconView::SetCollapsedEntryBmp(SvLBoxEntry* pEntry,
const Image& rBmp )
{
SvLBoxContextBmp* pItem = (SvLBoxContextBmp*)(pEntry->GetFirstItem(SV_ITEM_ID_LBOXCONTEXTBMP));
if ( pItem )
{
pItem->SetBitmap1( rBmp );
GetModel()->InvalidateEntry( pEntry );
}
}
XubString SvIconView::GetEntryText(SvLBoxEntry* pEntry ) const
{
XubString aStr;
SvLBoxString* pItem = (SvLBoxString*)(pEntry->GetFirstItem(SV_ITEM_ID_LBOXSTRING));
if ( pItem )
aStr = pItem->GetText();
return aStr;
}
Image SvIconView::GetExpandedEntryBmp(SvLBoxEntry* pEntry) const
{
Image aBmp;
SvLBoxContextBmp* pItem = (SvLBoxContextBmp*)(pEntry->GetFirstItem(SV_ITEM_ID_LBOXCONTEXTBMP));
if ( pItem )
aBmp = pItem->GetBitmap2();
return aBmp;
}
Image SvIconView::GetCollapsedEntryBmp(SvLBoxEntry* pEntry) const
{
Image aBmp;
SvLBoxContextBmp* pItem = (SvLBoxContextBmp*)(pEntry->GetFirstItem(SV_ITEM_ID_LBOXCONTEXTBMP));
if ( pItem )
aBmp = pItem->GetBitmap1();
return aBmp;
}
SvLBoxEntry* SvIconView::CloneEntry( SvLBoxEntry* pSource )
{
XubString aStr;
Image aCollEntryBmp;
Image aExpEntryBmp;
SvLBoxString* pStringItem = (SvLBoxString*)(pSource->GetFirstItem(SV_ITEM_ID_LBOXSTRING));
if ( pStringItem )
aStr = pStringItem->GetText();
SvLBoxContextBmp* pBmpItem =(SvLBoxContextBmp*)(pSource->GetFirstItem(SV_ITEM_ID_LBOXCONTEXTBMP));
if ( pBmpItem )
{
aCollEntryBmp = pBmpItem->GetBitmap1();
aExpEntryBmp = pBmpItem->GetBitmap2();
}
SvLBoxEntry* pEntry = CreateEntry( aStr, aCollEntryBmp, aExpEntryBmp );
pEntry->SvListEntry::Clone( pSource );
pEntry->EnableChildsOnDemand( pSource->HasChildsOnDemand() );
pEntry->SetUserData( pSource->GetUserData() );
return pEntry;
}
sal_uInt16 SvIconView::IsA()
{
return SV_LISTBOX_ID_ICONVIEW;
}
void SvIconView::RequestingChilds( SvLBoxEntry* pParent )
{
if ( !pParent->HasChilds() )
InsertEntry( String::CreateFromAscii("<dummy>"), pParent, sal_False, LIST_APPEND );
}
void SvIconView::Paint( const Rectangle& rRect )
{
pImp->Paint( rRect );
}
void SvIconView::MouseButtonDown( const MouseEvent& rMEvt )
{
pImp->MouseButtonDown( rMEvt );
}
void SvIconView::MouseButtonUp( const MouseEvent& rMEvt )
{
pImp->MouseButtonUp( rMEvt );
}
void SvIconView::MouseMove( const MouseEvent& rMEvt )
{
pImp->MouseMove( rMEvt );
}
void SvIconView::KeyInput( const KeyEvent& rKEvt )
{
// unter OS/2 bekommen wir auch beim Editieren Key-Up/Down
if( IsEditingActive() )
return;
nImpFlags |= SVLBOX_IS_TRAVELSELECT;
sal_Bool bKeyUsed = pImp->KeyInput( rKEvt );
if ( !bKeyUsed )
SvLBox::KeyInput( rKEvt );
nImpFlags &= ~SVLBOX_IS_TRAVELSELECT;
}
void SvIconView::Resize()
{
pImp->Resize();
SvLBox::Resize();
}
void SvIconView::GetFocus()
{
pImp->GetFocus();
SvLBox::GetFocus();
}
void SvIconView::LoseFocus()
{
pImp->LoseFocus();
SvLBox::LoseFocus();
}
void SvIconView::SetUpdateMode( sal_Bool bUpdate )
{
Control::SetUpdateMode( bUpdate );
if ( bUpdate )
pImp->UpdateAll();
}
void SvIconView::SetModel( SvLBoxTreeList* )
{
}
void SvIconView::SetModel( SvLBoxTreeList* pNewModel, SvLBoxEntry* pParent )
{
nIcnVwFlags |= ICNVW_BLOCK_ENTRYINS;
SvLBox::SetModel( pNewModel );
nIcnVwFlags &= (~ICNVW_BLOCK_ENTRYINS);
if ( pParent && pParent->HasChildsOnDemand() )
RequestingChilds( pParent );
pImp->SetModel( pNewModel, pParent );
}
void SvIconView::ModelHasCleared()
{
SvLBox::ModelHasCleared();
pImp->Clear();
}
void SvIconView::ModelHasInserted( SvListEntry* pEntry )
{
if( !(nIcnVwFlags & ICNVW_BLOCK_ENTRYINS ) )
pImp->EntryInserted( (SvLBoxEntry*)pEntry );
}
void SvIconView::ModelHasInsertedTree( SvListEntry* pEntry )
{
pImp->TreeInserted( (SvLBoxEntry*)pEntry );
}
void SvIconView::ModelIsMoving(SvListEntry* pSource,
SvListEntry* /* pTargetParent */ , sal_uLong /* nChildPos */ )
{
pImp->MovingEntry( (SvLBoxEntry*)pSource );
}
void SvIconView::ModelHasMoved(SvListEntry* pSource )
{
pImp->EntryMoved( (SvLBoxEntry*)pSource );
}
void SvIconView::ModelIsRemoving( SvListEntry* pEntry )
{
pImp->RemovingEntry( (SvLBoxEntry*)pEntry );
NotifyRemoving( (SvLBoxEntry*)pEntry );
}
void SvIconView::ModelHasRemoved( SvListEntry* /* pEntry */ )
{
pImp->EntryRemoved();
}
void SvIconView::ModelHasEntryInvalidated( SvListEntry* pEntry )
{
// die einzelnen Items des Entries reinitialisieren
SvLBox::ModelHasEntryInvalidated( pEntry );
// painten
pImp->ModelHasEntryInvalidated( pEntry );
}
void SvIconView::ShowTargetEmphasis( SvLBoxEntry* pEntry, sal_Bool bShow )
{
pImp->ShowTargetEmphasis( pEntry, bShow );
}
Point SvIconView::GetEntryPosition( SvLBoxEntry* pEntry ) const
{
return ((SvIconView*)this)->pImp->GetEntryPosition( pEntry );
}
void SvIconView::SetEntryPosition( SvLBoxEntry* pEntry, const Point& rPos)
{
pImp->SetEntryPosition( pEntry, rPos, sal_False, sal_True );
}
void SvIconView::SetEntryPosition( SvLBoxEntry* pEntry, const Point& rPos, sal_Bool bAdjustAtGrid )
{
pImp->SetEntryPosition( pEntry, rPos, bAdjustAtGrid );
}
void SvIconView::SetFont( const Font& rFont )
{
Font aTempFont( rFont );
aTempFont.SetTransparent( sal_True );
SvLBox::SetFont( aTempFont );
RecalcViewData();
pImp->ChangedFont();
}
void SvIconView::ViewDataInitialized( SvLBoxEntry* pEntry )
{
pImp->ViewDataInitialized( pEntry );
}
SvLBoxEntry* SvIconView::GetDropTarget( const Point& rPos )
{
return pImp->GetDropTarget( rPos );
}
SvLBoxEntry* SvIconView::GetEntry( const Point& rPixPos, sal_Bool ) const
{
Point aPos( rPixPos );
aPos -= GetMapMode().GetOrigin();
return ((SvIconView*)this)->pImp->GetEntry( aPos );
}
SvLBoxEntry* SvIconView::GetEntryFromLogicPos( const Point& rDocPos ) const
{
return ((SvIconView*)this)->pImp->GetEntry( rDocPos );
}
void SvIconView::StateChanged( StateChangedType i_nStateChange )
{
SvLBox::StateChanged( i_nStateChange );
if ( i_nStateChange == STATE_CHANGE_STYLE )
pImp->SetStyle( GetStyle() );
}
void SvIconView::PaintEntry( SvLBoxEntry* pEntry )
{
pImp->PaintEntry( pEntry );
}
void SvIconView::PaintEntry( SvLBoxEntry* pEntry, const Point& rPos )
{
pImp->PaintEntry( pEntry, rPos );
}
Rectangle SvIconView::GetFocusRect( SvLBoxEntry* pEntry )
{
return pImp->CalcFocusRect( pEntry );
}
void SvIconView::InvalidateEntry( SvLBoxEntry* pEntry )
{
pImp->InvalidateEntry( pEntry );
}
void SvIconView::SetDragDropMode( DragDropMode nDDMode )
{
SvLBox::SetDragDropMode( nDDMode );
pImp->SetDragDropMode( nDDMode );
}
void SvIconView::SetSelectionMode( SelectionMode eSelectMode )
{
SvLBox::SetSelectionMode( eSelectMode );
pImp->SetSelectionMode( eSelectMode );
}
sal_Bool SvIconView::Select( SvLBoxEntry* pEntry, sal_Bool bSelect )
{
EndEditing();
sal_Bool bRetVal = SvListView::Select( pEntry, bSelect );
if( bRetVal )
{
pImp->EntrySelected( pEntry, bSelect );
pHdlEntry = pEntry;
SelectHdl();
}
return bRetVal;
}
void SvIconView::SelectAll( sal_Bool bSelect, sal_Bool )
{
SvLBoxEntry* pEntry = pImp->GetCurParent();
pEntry = FirstChild( pEntry );
while( pEntry )
{
Select( pEntry, bSelect );
pEntry = NextSibling( pEntry );
}
}
void SvIconView::SetCurEntry( SvLBoxEntry* _pEntry )
{
pImp->SetCursor( _pEntry );
OnCurrentEntryChanged();
}
SvLBoxEntry* SvIconView::GetCurEntry() const
{
return pImp->GetCurEntry();
}
void SvIconView::Arrange()
{
#ifdef DBG_UTIL
sal_uInt16 n=1;
if( n == 1 && n-1 == 0 )
{
pImp->Arrange();
}
else
{
pImp->AdjustAtGrid();
}
#else
pImp->Arrange();
#endif
}
void SvIconView::SetSpaceBetweenEntries( long nX, long nY )
{
pImp->SetSpaceBetweenEntries( nX, nY );
}
sal_Bool SvIconView::NotifyMoving( SvLBoxEntry* pTarget, SvLBoxEntry* pEntry,
SvLBoxEntry*& rpNewParent, sal_uLong& rNewChildPos )
{
return pImp->NotifyMoving(pTarget,pEntry,rpNewParent,rNewChildPos);
}
sal_Bool SvIconView::NotifyCopying( SvLBoxEntry* pTarget, SvLBoxEntry* pEntry,
SvLBoxEntry*& rpNewParent, sal_uLong& rNewChildPos )
{
return pImp->NotifyCopying(pTarget,pEntry,rpNewParent,rNewChildPos);
}
void SvIconView::EnableInplaceEditing( sal_Bool bEnable )
{
SvLBox::EnableInplaceEditing( bEnable );
}
void SvIconView::EditingRequest( SvLBoxEntry* pEntry, SvLBoxItem* pItem,
const Point& )
{
if ( pItem->IsA() == SV_ITEM_ID_LBOXSTRING )
{
Selection aSel( SELECTION_MIN, SELECTION_MAX );
if ( EditingEntry( pEntry, aSel ) )
{
SelectAll( sal_False );
EditItemText( pEntry, (SvLBoxString*)pItem, aSel );
}
}
}
void SvIconView::EditItemText( SvLBoxEntry* pEntry, SvLBoxItem* pItem,
const Selection& rSel )
{
DBG_ASSERT(pEntry&&pItem,"EditItemText:Params?");
pCurEdEntry = pEntry;
pCurEdItem = pItem;
Rectangle aRect( pImp->CalcTextRect( pEntry, (SvLBoxString*)pItem,0,sal_True ));
aRect.Bottom() += 4;
pImp->MakeVisible( aRect ); // vor der Umrechnung in Pixel-Koord. rufen!
aRect.Bottom() -= 4;
Point aPos( aRect.TopLeft() );
aPos += GetMapMode().GetOrigin(); // Dok-Koord. -> Window-Koord.
aRect.SetPos( aPos );
aRect.Bottom() += 2; // sieht huebscher aus
EditText( ((SvLBoxString*)pItem)->GetText(), aRect, rSel, sal_True );
}
void SvIconView::EditEntry( SvLBoxEntry* pEntry )
{
if( !pEntry )
pEntry = pImp->GetCurEntry();
if( pEntry )
{
SvLBoxString* pItem = (SvLBoxString*)(pEntry->GetFirstItem(SV_ITEM_ID_LBOXSTRING));
if( pItem )
{
Selection aSel( SELECTION_MIN, SELECTION_MAX );
if( EditingEntry( pEntry, aSel ) )
{
SelectAll( sal_False );
EditItemText( pEntry, pItem, aSel );
}
}
}
}
void SvIconView::EditedText( const XubString& rStr )
{
XubString aRefStr( ((SvLBoxString*)pCurEdItem)->GetText() );
if ( EditedEntry( pCurEdEntry, rStr ) )
{
((SvLBoxString*)pCurEdItem)->SetText( pCurEdEntry, rStr );
pModel->InvalidateEntry( pCurEdEntry );
}
if( GetSelectionMode()==SINGLE_SELECTION && !GetSelectionCount())
Select( pCurEdEntry );
}
sal_Bool SvIconView::EditingEntry( SvLBoxEntry*, Selection& )
{
return sal_True;
}
sal_Bool SvIconView::EditedEntry( SvLBoxEntry*, const XubString& )
{
return sal_True;
}
void SvIconView::WriteDragServerInfo( const Point& rPos, SvLBoxDDInfo* pInfo)
{
pImp->WriteDragServerInfo( rPos, pInfo );
}
void SvIconView::ReadDragServerInfo( const Point& rPos, SvLBoxDDInfo* pInfo )
{
pImp->ReadDragServerInfo( rPos, pInfo );
}
void SvIconView::Command( const CommandEvent& rCEvt )
{
pImp->PrepareCommandEvent( rCEvt.GetMousePosPixel() );
}
void SvIconView::SetCurParent( SvLBoxEntry* pNewParent )
{
if ( pNewParent && pNewParent->HasChildsOnDemand() )
RequestingChilds( pNewParent );
pImp->SetCurParent( pNewParent );
}
SvLBoxEntry* SvIconView::GetCurParent() const
{
return pImp->GetCurParent();
}
SvViewData* SvIconView::CreateViewData( SvListEntry* )
{
SvIcnVwDataEntry* pEntryData = new SvIcnVwDataEntry;
return (SvViewData*)pEntryData;
}
void SvIconView::InitViewData( SvViewData* pData, SvListEntry* pEntry )
{
SvLBox::InitViewData( pData, pEntry );
pImp->InvalidateBoundingRect( ((SvIcnVwDataEntry*)pData)->aRect );
}
Region SvIconView::GetDragRegion() const
{
Rectangle aRect;
SvLBoxEntry* pEntry = GetCurEntry();
if( pEntry )
aRect = pImp->GetBoundingRect( pEntry );
Region aRegion( aRect );
return aRegion;
}
sal_uLong SvIconView::GetSelectionCount() const
{
return (sal_uLong)(pImp->GetSelectionCount());
}
void SvIconView::SetGrid( long nDX, long nDY )
{
pImp->SetGrid( nDX, nDY );
}
void SvIconView::ModelNotification( sal_uInt16 nActionId, SvListEntry* pEntry1,
SvListEntry* pEntry2, sal_uLong nPos )
{
SvLBox::ModelNotification( nActionId, pEntry1, pEntry2, nPos );
switch( nActionId )
{
case LISTACTION_RESORTING:
SetUpdateMode( sal_False );
break;
case LISTACTION_RESORTED:
SetUpdateMode( sal_True );
Arrange();
break;
case LISTACTION_CLEARED:
if( IsUpdateMode() )
Update();
break;
}
}
void SvIconView::Scroll( long nDeltaX, long nDeltaY, sal_uInt16 )
{
pImp->Scroll( nDeltaX, nDeltaY, sal_False );
}
void SvIconView::PrepareCommandEvent( const CommandEvent& rCEvt )
{
pImp->PrepareCommandEvent( rCEvt.GetMousePosPixel() );
}
void SvIconView::StartDrag( sal_Int8 nAction, const Point& rPos )
{
pImp->SttDrag( rPos );
SvLBoxEntry* pEntry = GetEntry( rPos, sal_True );
pImp->mpViewData = pEntry;
SvLBox::StartDrag( nAction, rPos );
}
void SvIconView::DragFinished( sal_Int8 )
{
pImp->EndDrag();
}
sal_Int8 SvIconView::AcceptDrop( const AcceptDropEvent& rEvt )
{
if( pImp->mpViewData )
pImp->HideDDIcon();
sal_Int8 nRet = SvLBox::AcceptDrop( rEvt );
if( DND_ACTION_NONE != nRet )
pImp->ShowDDIcon( pImp->mpViewData, rEvt.maPosPixel );
return nRet;
}
sal_Int8 SvIconView::ExecuteDrop( const ExecuteDropEvent& rEvt )
{
if( pImp->mpViewData )
{
pImp->HideDDIcon();
pImp->mpViewData = 0;
}
return SvLBox::ExecuteDrop( rEvt );
}
void SvIconView::ShowDDIcon( SvLBoxEntry* pRefEntry, const Point& rPos )
{
pImp->ShowDDIcon( pRefEntry, rPos );
}
void SvIconView::HideDDIcon()
{
pImp->HideDDIcon();
}
void SvIconView::HideShowDDIcon( SvLBoxEntry* pRefEntry, const Point& rPos )
{
pImp->HideShowDDIcon( pRefEntry, rPos );
}
void SvIconView::SelectRect( const Rectangle& rRect, sal_Bool bAdd,
SvPtrarr* pRects, short nOffs )
{
pImp->SelectRect( rRect, bAdd, pRects, nOffs );
}
void SvIconView::CalcScrollOffsets( const Point& rRefPosPixel, long& rX, long& rY,
sal_Bool b, sal_uInt16 nBorderWidth )
{
pImp->CalcScrollOffsets( rRefPosPixel, rX, rY, b, nBorderWidth );
}
void SvIconView::EndTracking()
{
pImp->EndTracking();
}
void SvIconView::MakeVisible( SvLBoxEntry* pEntry )
{
pImp->MakeVisible( pEntry );
}
void SvIconView::PreparePaint( SvLBoxEntry* )
{
}
void SvIconView::AdjustAtGrid( SvLBoxEntry* pEntry )
{
pImp->AdjustAtGrid( pEntry );
}
void SvIconView::LockEntryPos( SvLBoxEntry* pEntry, sal_Bool bLock )
{
SvIcnVwDataEntry* pViewData = (SvIcnVwDataEntry*)GetViewData( pEntry );
if( bLock )
pViewData->SetVwFlags( ICNVW_FLAG_POS_LOCKED );
else
pViewData->ClearVwFlags( ICNVW_FLAG_POS_LOCKED );
}
sal_Bool SvIconView::IsEntryPosLocked( const SvLBoxEntry* pEntry ) const
{
const SvIcnVwDataEntry* pViewData = (const SvIcnVwDataEntry*)GetViewData( (SvListEntry*)pEntry );
return pViewData->IsEntryPosLocked();
}
void SvIconView::SetTextMode( SvIconViewTextMode eMode, SvLBoxEntry* pEntry )
{
pImp->SetTextMode( eMode, pEntry );
}
SvIconViewTextMode SvIconView::GetTextMode( const SvLBoxEntry* pEntry ) const
{
return pImp->GetTextMode( pEntry );
}
SvLBoxEntry* SvIconView::GetNextEntry( const Point& rPixPos, SvLBoxEntry* pCurEntry, sal_Bool ) const
{
Point aPos( rPixPos );
aPos -= GetMapMode().GetOrigin();
return ((SvIconView*)this)->pImp->GetNextEntry( aPos, pCurEntry );
}
SvLBoxEntry* SvIconView::GetPrevEntry( const Point& rPixPos, SvLBoxEntry* pCurEntry, sal_Bool ) const
{
Point aPos( rPixPos );
aPos -= GetMapMode().GetOrigin();
return ((SvIconView*)this)->pImp->GetPrevEntry( aPos, pCurEntry );
}
void SvIconView::ShowFocusRect( const SvLBoxEntry* pEntry )
{
pImp->ShowFocusRect( pEntry );
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
This source diff could not be displayed because it is too large. You can view the blob instead.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment