diff options
Diffstat (limited to 'svtools/source/contnr/ivctrl.cxx')
-rw-r--r-- | svtools/source/contnr/ivctrl.cxx | 610 |
1 files changed, 0 insertions, 610 deletions
diff --git a/svtools/source/contnr/ivctrl.cxx b/svtools/source/contnr/ivctrl.cxx deleted file mode 100644 index e94efee7b2..0000000000 --- a/svtools/source/contnr/ivctrl.cxx +++ /dev/null @@ -1,610 +0,0 @@ -/* -*- 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/ivctrl.hxx> -#include "imivctl.hxx" -#include <vcl/bitmapex.hxx> -#include <vcl/controllayout.hxx> -#include <vcl/mnemonic.hxx> -using namespace ::com::sun::star::accessibility; - -/***************************************************************************** -| -| class : SvxIconChoiceCtrlEntry -| -\*****************************************************************************/ - -SvxIconChoiceCtrlEntry::SvxIconChoiceCtrlEntry( const String& rText, const Image& rImage, sal_uInt16 _nFlags ) -{ - aText = rText; - aImage = rImage; - pUserData = NULL; - - nFlags = _nFlags; - eTextMode = IcnShowTextShort; - pblink = 0; - pflink = 0; -} - -SvxIconChoiceCtrlEntry::SvxIconChoiceCtrlEntry( sal_uInt16 _nFlags ) -{ - pUserData = NULL; - - nFlags = _nFlags; - eTextMode = IcnShowTextShort; - pblink = 0; - pflink = 0; -} - -void SvxIconChoiceCtrlEntry::SetMoved( sal_Bool bMoved ) -{ - if( bMoved ) - nFlags |= ICNVIEW_FLAG_POS_MOVED; - else - nFlags &= ~ICNVIEW_FLAG_POS_MOVED; -} - -void SvxIconChoiceCtrlEntry::LockPos( sal_Bool bLock ) -{ - if( bLock ) - nFlags |= ICNVIEW_FLAG_POS_LOCKED; - else - nFlags &= ~ICNVIEW_FLAG_POS_LOCKED; -} - -String SvxIconChoiceCtrlEntry::GetDisplayText() const -{ - return MnemonicGenerator::EraseAllMnemonicChars( aText ); -} - -// ---------------------------------------------------------------------------- - -SvxIconChoiceCtrlColumnInfo::SvxIconChoiceCtrlColumnInfo( const SvxIconChoiceCtrlColumnInfo& rInfo ) - : aColText( rInfo.aColText ), aColImage( rInfo.aColImage ) -{ - nWidth = rInfo.nWidth; - eAlignment = rInfo.eAlignment; - nSubItem = rInfo.nSubItem; -} - -/***************************************************************************** -| -| class : SvtIconChoiceCtrl -| -\*****************************************************************************/ - -SvtIconChoiceCtrl::SvtIconChoiceCtrl( Window* pParent, WinBits nWinStyle ) : - - // WB_CLIPCHILDREN an, da ScrollBars auf dem Fenster liegen! - Control( pParent, nWinStyle | WB_CLIPCHILDREN ), - - _pCurKeyEvent ( NULL ), - _pImp ( new SvxIconChoiceCtrl_Impl( this, nWinStyle ) ), - _bAutoFontColor ( sal_False ) - -{ - SetLineColor(); - _pImp->SetGrid( Size( 100, 70 ) ); - _pImp->InitSettings(); - _pImp->SetPositionMode( IcnViewPositionModeAutoArrange ); -} - -SvtIconChoiceCtrl::SvtIconChoiceCtrl( Window* pParent, const ResId& rResId ) : - - Control( pParent, rResId ), - - _pCurKeyEvent ( NULL ), - _pImp ( new SvxIconChoiceCtrl_Impl( this, WB_BORDER ) ), - _bAutoFontColor ( sal_False ) - -{ - SetLineColor(); - _pImp->SetGrid( Size( 100, 70 ) ); - _pImp->InitSettings(); - _pImp->SetPositionMode( IcnViewPositionModeAutoArrange ); -} - -SvtIconChoiceCtrl::~SvtIconChoiceCtrl() -{ - _pImp->CallEventListeners( VCLEVENT_OBJECT_DYING ); - delete _pImp; -} - -SvxIconChoiceCtrlEntry* SvtIconChoiceCtrl::InsertEntry( sal_uLong nPos, const Point* pPos, sal_uInt16 nFlags ) -{ - SvxIconChoiceCtrlEntry* pEntry = new SvxIconChoiceCtrlEntry( nFlags ); - _pImp->InsertEntry( pEntry, nPos, pPos ); - return pEntry; -} - -SvxIconChoiceCtrlEntry* SvtIconChoiceCtrl::InsertEntry( const String& rText, const Image& rImage, sal_uLong nPos, const Point* pPos, sal_uInt16 nFlags ) -{ - SvxIconChoiceCtrlEntry* pEntry = new SvxIconChoiceCtrlEntry( rText, rImage, nFlags); - - _pImp->InsertEntry( pEntry, nPos, pPos ); - - return pEntry; -} - -sal_Bool SvtIconChoiceCtrl::EditedEntry( SvxIconChoiceCtrlEntry*, const XubString&, sal_Bool ) -{ - return sal_True; -} - -sal_Bool SvtIconChoiceCtrl::EditingEntry( SvxIconChoiceCtrlEntry* ) -{ - return sal_True; -} - -void SvtIconChoiceCtrl::DrawEntryImage( SvxIconChoiceCtrlEntry* pEntry, const Point& rPos, OutputDevice& rDev ) -{ - rDev.DrawImage( rPos, pEntry->GetImage() ); -} - -String SvtIconChoiceCtrl::GetEntryText( SvxIconChoiceCtrlEntry* pEntry, sal_Bool ) -{ - return pEntry->GetText(); -} - -sal_Bool SvtIconChoiceCtrl::HasBackground() const -{ - return sal_False; -} - -sal_Bool SvtIconChoiceCtrl::HasFont() const -{ - return sal_False; -} - -sal_Bool SvtIconChoiceCtrl::HasFontTextColor() const -{ - return sal_True; -} - -sal_Bool SvtIconChoiceCtrl::HasFontFillColor() const -{ - return sal_True; -} - -void SvtIconChoiceCtrl::Paint( const Rectangle& rRect ) -{ - _pImp->Paint( rRect ); -} - -void SvtIconChoiceCtrl::MouseButtonDown( const MouseEvent& rMEvt ) -{ - if( !_pImp->MouseButtonDown( rMEvt ) ) - Control::MouseButtonDown( rMEvt ); -} - -void SvtIconChoiceCtrl::MouseButtonUp( const MouseEvent& rMEvt ) -{ - if( !_pImp->MouseButtonUp( rMEvt ) ) - Control::MouseButtonUp( rMEvt ); -} - -void SvtIconChoiceCtrl::MouseMove( const MouseEvent& rMEvt ) -{ - if( !_pImp->MouseMove( rMEvt ) ) - Control::MouseMove( rMEvt ); -} -void SvtIconChoiceCtrl::ArrangeIcons() -{ - if ( GetStyle() & WB_ALIGN_TOP ) - { - Size aFullSize; - Rectangle aEntryRect; - - for ( sal_uLong i = 0; i < GetEntryCount(); i++ ) - { - SvxIconChoiceCtrlEntry* pEntry = GetEntry ( i ); - aEntryRect = _pImp->GetEntryBoundRect ( pEntry ); - - aFullSize.setWidth ( aFullSize.getWidth()+aEntryRect.GetWidth() ); - } - - _pImp->Arrange ( sal_False, aFullSize.getWidth() ); - } - else if ( GetStyle() & WB_ALIGN_LEFT ) - { - Size aFullSize; - Rectangle aEntryRect; - - for ( sal_uLong i = 0; i < GetEntryCount(); i++ ) - { - SvxIconChoiceCtrlEntry* pEntry = GetEntry ( i ); - aEntryRect = _pImp->GetEntryBoundRect ( pEntry ); - - aFullSize.setHeight ( aFullSize.getHeight()+aEntryRect.GetHeight() ); - } - - _pImp->Arrange ( sal_False, 0, aFullSize.getHeight() ); - } - else - { - _pImp->Arrange(); - } - _pImp->Arrange( sal_False, 0, 1000 ); -} -void SvtIconChoiceCtrl::Resize() -{ - _pImp->Resize(); - Control::Resize(); -} - -Point SvtIconChoiceCtrl::GetLogicPos( const Point& rPosPixel ) const -{ - Point aPos( rPosPixel ); - aPos -= GetMapMode().GetOrigin(); - return aPos; -} - -Point SvtIconChoiceCtrl::GetPixelPos( const Point& rPosLogic ) const -{ - Point aPos( rPosLogic ); - aPos += GetMapMode().GetOrigin(); - return aPos; -} - -void SvtIconChoiceCtrl::DocumentRectChanged() -{ - _aDocRectChangedHdl.Call( this ); -} - -void SvtIconChoiceCtrl::VisibleRectChanged() -{ - _aVisRectChangedHdl.Call( this ); -} - -void SvtIconChoiceCtrl::GetFocus() -{ - _pImp->GetFocus(); - Control::GetFocus(); - sal_uLong nPos; - SvxIconChoiceCtrlEntry* pSelectedEntry = GetSelectedEntry ( nPos ); - if ( pSelectedEntry ) - _pImp->CallEventListeners( VCLEVENT_LISTBOX_SELECT, pSelectedEntry ); -} - -void SvtIconChoiceCtrl::LoseFocus() -{ - _pImp->LoseFocus(); - Control::LoseFocus(); -} - -void SvtIconChoiceCtrl::SetUpdateMode( sal_Bool bUpdate ) -{ - Control::SetUpdateMode( bUpdate ); - _pImp->SetUpdateMode( bUpdate ); -} -void SvtIconChoiceCtrl::SetFont( const Font& rFont ) -{ - if( rFont != GetFont() ) - { - Control::SetFont( rFont ); - _pImp->FontModified(); - } -} - -void SvtIconChoiceCtrl::SetPointFont( const Font& rFont ) -{ - if( rFont != GetPointFont() ) - { - Control::SetPointFont( rFont ); - _pImp->FontModified(); - } -} -SvxIconChoiceCtrlEntry* SvtIconChoiceCtrl::GetEntry( const Point& rPixPos, sal_Bool bHit ) const -{ - Point aPos( rPixPos ); - aPos -= GetMapMode().GetOrigin(); - return ((SvtIconChoiceCtrl*)this)->_pImp->GetEntry( aPos, bHit ); -} - -void SvtIconChoiceCtrl::SetStyle( WinBits nWinStyle ) -{ - _pImp->SetStyle( nWinStyle ); -} - -WinBits SvtIconChoiceCtrl::GetStyle() const -{ - return _pImp->GetStyle(); -} -void SvtIconChoiceCtrl::Command( const CommandEvent& rCEvt ) -{ - _pImp->Command( rCEvt ); -} - -void SvtIconChoiceCtrl::SetEntryTextMode( SvxIconChoiceCtrlTextMode eMode, SvxIconChoiceCtrlEntry* pEntry ) -{ - _pImp->SetEntryTextMode( eMode, pEntry ); -} - -SvxIconChoiceCtrlTextMode SvtIconChoiceCtrl::GetEntryTextMode( const SvxIconChoiceCtrlEntry* pEntry ) const -{ - return _pImp->GetEntryTextModeSmart( pEntry ); -} - -SvxIconChoiceCtrlEntry* SvtIconChoiceCtrl::GetNextEntry( const Point& rPixPos, SvxIconChoiceCtrlEntry* pCurEntry, sal_Bool ) const -{ - Point aPos( rPixPos ); - aPos -= GetMapMode().GetOrigin(); - return ((SvtIconChoiceCtrl*)this)->_pImp->GetNextEntry( aPos, pCurEntry ); -} - -sal_uLong SvtIconChoiceCtrl::GetEntryCount() const -{ - return _pImp->GetEntryCount(); -} - -SvxIconChoiceCtrlEntry* SvtIconChoiceCtrl::GetEntry( sal_uLong nPos ) const -{ - return _pImp->GetEntry( nPos ); -} - -void SvtIconChoiceCtrl::CreateAutoMnemonics( MnemonicGenerator& _rUsedMnemonics ) -{ - _pImp->CreateAutoMnemonics( &_rUsedMnemonics ); -} - -void SvtIconChoiceCtrl::CreateAutoMnemonics( void ) -{ - _pImp->CreateAutoMnemonics(); -} - -void SvtIconChoiceCtrl::RemoveEntry( SvxIconChoiceCtrlEntry* pEntry ) -{ - _pImp->RemoveEntry( pEntry ); -} - -SvxIconChoiceCtrlEntry* SvtIconChoiceCtrl::GetSelectedEntry( sal_uLong& rPos ) const -{ - return _pImp->GetFirstSelectedEntry( rPos ); -} - -void SvtIconChoiceCtrl::ClickIcon() -{ - sal_uLong nPos; - GetSelectedEntry ( nPos ); - _aClickIconHdl.Call( this ); -} -sal_Bool SvtIconChoiceCtrl::IsEntryEditing() const -{ - return _pImp->IsEntryEditing(); -} - -sal_Bool SvtIconChoiceCtrl::SetChoiceWithCursor ( sal_Bool bDo ) -{ - return _pImp->SetChoiceWithCursor (bDo); -} - -void SvtIconChoiceCtrl::KeyInput( const KeyEvent& rKEvt ) -{ - sal_Bool bKeyUsed = DoKeyInput( rKEvt ); - if ( !bKeyUsed ) - { - _pCurKeyEvent = (KeyEvent*)&rKEvt; - Control::KeyInput( rKEvt ); - _pCurKeyEvent = NULL; - } -} -sal_Bool SvtIconChoiceCtrl::DoKeyInput( const KeyEvent& rKEvt ) -{ - // unter OS/2 bekommen wir auch beim Editieren Key-Up/Down - if( IsEntryEditing() ) - return sal_True; - _pCurKeyEvent = (KeyEvent*)&rKEvt; - sal_Bool bHandled = _pImp->KeyInput( rKEvt ); - _pCurKeyEvent = NULL; - return bHandled; -} -sal_uLong SvtIconChoiceCtrl::GetEntryListPos( SvxIconChoiceCtrlEntry* pEntry ) const -{ - return _pImp->GetEntryListPos( pEntry ); -} -SvxIconChoiceCtrlEntry* SvtIconChoiceCtrl::GetCursor( ) const -{ - return _pImp->GetCurEntry( ); -} -void SvtIconChoiceCtrl::SetCursor( SvxIconChoiceCtrlEntry* pEntry ) -{ - _pImp->SetCursor( pEntry ); -} -void SvtIconChoiceCtrl::InvalidateEntry( SvxIconChoiceCtrlEntry* pEntry ) -{ - _pImp->InvalidateEntry( pEntry ); -} -void SvtIconChoiceCtrl::Clear() -{ - _pImp->Clear(); -} -void SvtIconChoiceCtrl::StateChanged( StateChangedType nType ) -{ - Control::StateChanged( nType ); -} - - -void SvtIconChoiceCtrl::DataChanged( const DataChangedEvent& rDCEvt ) -{ - if ( ((rDCEvt.GetType() == DATACHANGED_SETTINGS) || - (rDCEvt.GetType() == DATACHANGED_FONTSUBSTITUTION) || - (rDCEvt.GetType() == DATACHANGED_FONTS) ) && - (rDCEvt.GetFlags() & SETTINGS_STYLE) ) - { - _pImp->InitSettings(); - Invalidate(INVALIDATE_NOCHILDREN); - } - else - Control::DataChanged( rDCEvt ); -} - -void SvtIconChoiceCtrl::SetBackground( const Wallpaper& rPaper ) -{ - if( rPaper != GetBackground() ) - { - const StyleSettings& rStyleSettings = GetSettings().GetStyleSettings(); - Wallpaper aEmpty; - if( rPaper == aEmpty ) - Control::SetBackground( rStyleSettings.GetFieldColor() ); - else - { - Wallpaper aBackground( rPaper ); - // HACK, da Hintergrund sonst transparent sein koennte - if( !aBackground.IsBitmap() ) - aBackground.SetStyle( WALLPAPER_TILE ); - - WallpaperStyle eStyle = aBackground.GetStyle(); - Color aBack( aBackground.GetColor()); - Color aTrans( COL_TRANSPARENT ); - if( aBack == aTrans && ( - (!aBackground.IsBitmap() || - aBackground.GetBitmap().IsTransparent() || - (eStyle != WALLPAPER_TILE && eStyle != WALLPAPER_SCALE)))) - { - aBackground.SetColor( rStyleSettings.GetFieldColor() ); - } - if( aBackground.IsScrollable() ) - { - Rectangle aRect; - aRect.SetSize( Size(32765, 32765) ); - aBackground.SetRect( aRect ); - } - else - { - Rectangle aRect( _pImp->GetOutputRect() ); - aBackground.SetRect( aRect ); - } - Control::SetBackground( aBackground ); - } - - // bei hart attributierter Textfarbe keine 'Automatik', die eine - // lesbare Textfarbe einstellt. - Font aFont( GetFont() ); - aFont.SetColor( rStyleSettings.GetFieldTextColor() ); - SetFont( aFont ); - - Invalidate(INVALIDATE_NOCHILDREN); - } -} - -void SvtIconChoiceCtrl::Flush() -{ - _pImp->Flush(); -} - -void SvtIconChoiceCtrl::RequestHelp( const HelpEvent& rHEvt ) -{ - if ( !_pImp->RequestHelp( rHEvt ) ) - Control::RequestHelp( rHEvt ); -} - -void SvtIconChoiceCtrl::SetSelectionMode( SelectionMode eMode ) -{ - _pImp->SetSelectionMode( eMode ); -} - -sal_Bool SvtIconChoiceCtrl::HandleShortCutKey( const KeyEvent& r ) -{ - return _pImp->HandleShortCutKey( r ); -} - -Rectangle SvtIconChoiceCtrl::GetBoundingBox( SvxIconChoiceCtrlEntry* pEntry ) const -{ - return _pImp->GetEntryBoundRect( pEntry ); -} - -void SvtIconChoiceCtrl::FillLayoutData() const -{ - CreateLayoutData(); - - SvtIconChoiceCtrl* pNonConstMe = const_cast< SvtIconChoiceCtrl* >( this ); - - // loop through all entries - sal_uInt16 nCount = (sal_uInt16)GetEntryCount(); - sal_uInt16 nPos = 0; - while ( nPos < nCount ) - { - SvxIconChoiceCtrlEntry* pEntry = GetEntry( nPos ); - - Point aPos = _pImp->GetEntryBoundRect( pEntry ).TopLeft(); - String sEntryText = pEntry->GetDisplayText( ); - Rectangle aTextRect = _pImp->CalcTextRect( pEntry, &aPos, sal_False, &sEntryText ); - - sal_Bool bLargeIconMode = WB_ICON == ( _pImp->GetStyle() & ( VIEWMODE_MASK ) ); - sal_uInt16 nTextPaintFlags = bLargeIconMode ? PAINTFLAG_HOR_CENTERED : PAINTFLAG_VER_CENTERED; - - _pImp->PaintItem( aTextRect, IcnViewFieldTypeText, pEntry, nTextPaintFlags, pNonConstMe, &sEntryText, GetLayoutData() ); - - ++nPos; - } -} - -Rectangle SvtIconChoiceCtrl::GetEntryCharacterBounds( const sal_Int32 _nEntryPos, const sal_Int32 _nCharacterIndex ) const -{ - Rectangle aRect; - - Pair aEntryCharacterRange = GetLineStartEnd( _nEntryPos ); - if ( aEntryCharacterRange.A() + _nCharacterIndex < aEntryCharacterRange.B() ) - { - aRect = GetCharacterBounds( aEntryCharacterRange.A() + _nCharacterIndex ); - } - - return aRect; -} - -void SvtIconChoiceCtrl::SetNoSelection() -{ - _pImp->SetNoSelection(); -} - -void SvtIconChoiceCtrl::CallImplEventListeners(sal_uLong nEvent, void* pData) -{ - CallEventListeners(nEvent, pData); -} -::com::sun::star::uno::Reference< XAccessible > SvtIconChoiceCtrl::CreateAccessible() -{ - Window* pParent = GetAccessibleParentWindow(); - DBG_ASSERT( pParent, "SvTreeListBox::CreateAccessible - accessible parent not found" ); - - ::com::sun::star::uno::Reference< XAccessible > xAccessible; - if ( pParent ) - { - ::com::sun::star::uno::Reference< XAccessible > xAccParent = pParent->GetAccessible(); - if ( xAccParent.is() ) - { - ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindowPeer > xTemp(GetComponentInterface()); - xAccessible = _pImp->GetAccessibleFactory().createAccessibleIconChoiceCtrl( *this, xAccParent ); - } - } - return xAccessible; -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |