diff options
Diffstat (limited to 'fpicker/source/office/iodlgimp.cxx')
-rw-r--r-- | fpicker/source/office/iodlgimp.cxx | 505 |
1 files changed, 0 insertions, 505 deletions
diff --git a/fpicker/source/office/iodlgimp.cxx b/fpicker/source/office/iodlgimp.cxx deleted file mode 100644 index 67dd4976ef..0000000000 --- a/fpicker/source/office/iodlgimp.cxx +++ /dev/null @@ -1,505 +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_fpicker.hxx" - -// includes ******************************************************************* - -#include "iodlgimp.hxx" -#include "svtools/headbar.hxx" -#include <tools/debug.hxx> -#include <tools/wldcrd.hxx> -#include <tools/urlobj.hxx> -#include <vcl/menu.hxx> -#include <vcl/msgbox.hxx> -#include <vcl/lstbox.hxx> -#include <vcl/svapp.hxx> -// #97148# --------------- -#include "svl/ctypeitm.hxx" -#include "svl/eitem.hxx" -#include "unotools/viewoptions.hxx" -#include "svtools/fileview.hxx" -#include "svtools/inettbc.hxx" -#include "iodlg.hxx" -#include "iodlg.hrc" -#include "svtools/imagemgr.hxx" -#include <unotools/localfilehelper.hxx> -#include "unotools/useroptions.hxx" -#include "rtl/instance.hxx" -#include <svl/svl.hrc> - -#define _SVSTDARR_STRINGSSORTDTOR -#define _SVSTDARR_STRINGSDTOR -#define _SVSTDARR_USHORTS -#include "svl/svstdarr.hxx" - -using namespace ::com::sun::star::uno; -using namespace ::com::sun::star::lang; -using namespace ::utl; - -// some stuff for easier changes for SvtViewOptions -static const sal_Char* pViewOptDataName = "dialog data"; -#define VIEWOPT_DATANAME ::rtl::OUString::createFromAscii( pViewOptDataName ) - -static inline void SetViewOptUserItem( SvtViewOptions& rOpt, const String& rData ) -{ - rOpt.SetUserItem( VIEWOPT_DATANAME, makeAny( ::rtl::OUString( rData ) ) ); -} - -static inline String GetViewOptUserItem( const SvtViewOptions& rOpt ) -{ - Any aAny( rOpt.GetUserItem( VIEWOPT_DATANAME ) ); - ::rtl::OUString aUserData; - aAny >>= aUserData; - - return String( aUserData ); -} - - -// defines for the style of the BrowseBox - -#define STYLE_MULTI_SELECTION \ - CNTVIEWSTYLE_NODE_BUTTONS | \ - CNTVIEWSTYLE_NODE_BUTTONS_AT_ROOT | \ - CNTVIEWSTYLE_SHOW_MESSAGES | \ - CNTVIEWSTYLE_SHOW_FOLDERS | \ - CNTVIEWSTYLE_NO_SMARTHIGHLIGHT | \ - CNTVIEWSTYLE_HIDE_OPENMENU | \ - CNTVIEWSTYLE_DEFAULT_APPEARANCE | \ - CNTVIEWSTYLE_SORT_BY_FOLDER - -#define STYLE_SINGLE_SELECTION \ - STYLE_MULTI_SELECTION | CNTVIEWSTYLE_SINGLE_SELECTION - -#define BOOL_NOT_INITIALIZE ((sal_Bool)2) - -//***************************************************************************** -// ResMgrHolder / SvtSimpleResId -//***************************************************************************** -namespace -{ - struct ResMgrHolder - { - ResMgr * operator ()() - { - return ResMgr::CreateResMgr (CREATEVERSIONRESMGR_NAME(svs)); - } - static ResMgr * getOrCreate() - { - return rtl_Instance< - ResMgr, ResMgrHolder, - osl::MutexGuard, osl::GetGlobalMutex >::create ( - ResMgrHolder(), osl::GetGlobalMutex()); - } - }; - - struct SvtSimpleResId : public ResId - { - SvtSimpleResId (sal_uInt16 nId) : ResId (nId, *ResMgrHolder::getOrCreate()) {} - }; -} - -//***************************************************************************** -// SvtFileDialogFilter_Impl -//***************************************************************************** - -DBG_NAME( SvtFileDialogFilter_Impl ) -SvtFileDialogFilter_Impl::SvtFileDialogFilter_Impl( const String& rName, const String& rType ) - :m_aName( rName ) - ,m_aType( rType ) -{ - DBG_CTOR( SvtFileDialogFilter_Impl, NULL ); - - m_aType.ToLowerAscii(); -} - -//***************************************************************************** - -SvtFileDialogFilter_Impl::~SvtFileDialogFilter_Impl() -{ - DBG_DTOR( SvtFileDialogFilter_Impl, NULL ); -} - -//***************************************************************************** -// SvtFileDialogFilterList_Impl -//***************************************************************************** - -SV_IMPL_PTRARR( SvtFileDialogFilterList_Impl, SvtFileDialogFilter_Impl* ); - -//============================================================================= -//= SvtFileDialogURLSelector -//============================================================================= - -//----------------------------------------------------------------------------- -SvtFileDialogURLSelector::SvtFileDialogURLSelector( SvtFileDialog* _pParent, const ResId& _rResId, sal_uInt16 _nButtonId ) - :MenuButton ( _pParent, _rResId ) - ,m_pParent ( _pParent ) - ,m_pMenu ( new PopupMenu ) -{ - SetStyle( GetStyle() | WB_NOPOINTERFOCUS | WB_RECTSTYLE | WB_SMALLSTYLE ); - SetModeImage( m_pParent->GetButtonImage( _nButtonId ) ); - SetMenuMode( MENUBUTTON_MENUMODE_TIMED ); - SetDropDown( PUSHBUTTON_DROPDOWN_TOOLBOX ); -} - -//----------------------------------------------------------------------------- -SvtFileDialogURLSelector::~SvtFileDialogURLSelector() -{ - delete m_pMenu; -} - -//----------------------------------------------------------------------------- -void SvtFileDialogURLSelector::OpenURL( const String& rURL ) -{ - INetURLObject aObj( rURL ); - DBG_ASSERT( aObj.GetProtocol() != INET_PROT_NOT_VALID, "SvtFileDialogURLSelector::OpenURL: Invalid URL!" ); - m_pParent->OpenURL_Impl( aObj.GetMainURL( INetURLObject::NO_DECODE ) ); -} - -//----------------------------------------------------------------------------- -void SvtFileDialogURLSelector::Activate() -{ - m_pMenu->Clear(); - - FillURLMenu( m_pMenu ); - - SetPopupMenu( m_pMenu ); -} - -//============================================================================= -//= SvtUpButton_Impl -//============================================================================= - -//----------------------------------------------------------------------------- -SvtUpButton_Impl::SvtUpButton_Impl( SvtFileDialog* pParent, const ResId& rResId ) - :SvtFileDialogURLSelector( pParent, rResId, IMG_FILEDLG_BTN_UP ) - ,_pURLs ( NULL ) -{ -} - -//----------------------------------------------------------------------------- -SvtUpButton_Impl::~SvtUpButton_Impl() -{ - delete _pURLs; -} - -//----------------------------------------------------------------------------- -void SvtUpButton_Impl::FillURLMenu( PopupMenu* _pMenu ) -{ - SvtFileView* pBox = GetDialogParent()->GetView(); - - sal_uInt16 nItemId = 1; - - delete _pURLs; - _pURLs = new SvStringsDtor; - - // determine parent levels - INetURLObject aObject( pBox->GetViewURL() ); - sal_Int32 nCount = aObject.getSegmentCount(); - - ::svtools::VolumeInfo aVolInfo( sal_True /* volume */, sal_False /* remote */, - sal_False /* removable */, sal_False /* floppy */, - sal_False /* compact disk */ ); - Image aVolumeImage( SvFileInformationManager::GetFolderImage( aVolInfo ) ); - - while ( nCount >= 1 ) - { - aObject.removeSegment(); - String* pParentURL = new String( aObject.GetMainURL( INetURLObject::NO_DECODE ) ); - - if ( GetDialogParent()->isUrlAllowed( *pParentURL ) ) - { - String aTitle; - // 97148# -------------------------------- - if ( !GetDialogParent()->ContentGetTitle( *pParentURL, aTitle ) || aTitle.Len() == 0 ) - aTitle = aObject.getName(); - - Image aImage = ( nCount > 1 ) // if nCount == 1 means workplace, which detects the wrong image - ? SvFileInformationManager::GetImage( aObject ) : aVolumeImage; - - _pMenu->InsertItem( nItemId++, aTitle, aImage ); - _pURLs->Insert( pParentURL, _pURLs->Count() ); - - if ( nCount == 1 ) - { - // adjust the title of the top level entry (the workspace) - _pMenu->SetItemText( --nItemId, SvtSimpleResId( STR_SVT_MIMETYPE_CNT_FSYSBOX ) ); - } - } - - --nCount; - } -} - -//----------------------------------------------------------------------------- -void SvtUpButton_Impl::Select() -{ - sal_uInt16 nId = GetCurItemId(); - - if ( nId ) - { - --nId; - DBG_ASSERT( nId <= _pURLs->Count(), "SvtUpButton_Impl:falscher Index" ); - - String aURL = *(_pURLs->GetObject( nId )); - GetDialogParent()->OpenURL_Impl( aURL ); - } -} - -//----------------------------------------------------------------------------- -void SvtUpButton_Impl::Click() -{ - GetDialogParent()->PrevLevel_Impl(); -} - -//============================================================================= -//= SvtTravelButton_Impl -//============================================================================= - -//----------------------------------------------------------------------------- -SvtTravelButton_Impl::SvtTravelButton_Impl( SvtFileDialog* pParent, const ResId& rResId ) - :SvtFileDialogURLSelector ( pParent, rResId, IMG_FILEDLG_BTN_STD ) -{ - SetDropDown( 0 ); // by default, don't drop down, as we don't have favourites -} - -//----------------------------------------------------------------------------- -void SvtTravelButton_Impl::SetFavouriteLocations( const ::std::vector< String >& _rLocations ) -{ - m_aFavourites = _rLocations; - // enable the drop down if and only if we have favourites - SetDropDown( m_aFavourites.empty() ? 0 : PUSHBUTTON_DROPDOWN_TOOLBOX ); -} - -//----------------------------------------------------------------------------- -SvtTravelButton_Impl::~SvtTravelButton_Impl() -{ -} - -//----------------------------------------------------------------------------- -void SvtTravelButton_Impl::FillURLMenu( PopupMenu* _pMenu ) -{ - if ( m_aFavourites.empty() ) - // though we claimed that we do not want to have a drop down button - // in this case, VCL nevertheless behaves as if we had one .... :( - return; - - _pMenu->Clear(); - - sal_uInt16 nItemId = 1; - String sDisplayName; - - ::std::vector< String >::const_iterator aLoop; - for ( aLoop = m_aFavourites.begin(); aLoop != m_aFavourites.end(); ++aLoop, ++nItemId ) - { - if ( GetDialogParent()->isUrlAllowed( *aLoop ) ) - { - Image aImage = SvFileInformationManager::GetImage( INetURLObject(*aLoop) ); - if ( LocalFileHelper::ConvertURLToSystemPath(*aLoop, sDisplayName) ) - _pMenu->InsertItem( nItemId, sDisplayName, aImage ); - else - _pMenu->InsertItem( nItemId, *aLoop, aImage ); - } - } -} - -//----------------------------------------------------------------------------- -void SvtTravelButton_Impl::Select() -{ - sal_uInt16 nId = GetCurItemId(); - if ( nId ) - { - --nId; - DBG_ASSERT( nId < m_aFavourites.size(), "SvtTravelButton_Impl::Select: invalid index!" ); - if ( nId < m_aFavourites.size() ) - OpenURL( m_aFavourites[ nId ] ); - } -} - -//----------------------------------------------------------------------------- -void SvtTravelButton_Impl::Click() -{ - OpenURL( GetDialogParent()->GetStandardDir() ); -} - -//***************************************************************************** -// SvtExpFileDlg_Impl -//***************************************************************************** - -SvtExpFileDlg_Impl::SvtExpFileDlg_Impl( WinBits ) : - - _pLbFilter ( NULL ), - _pCurFilter ( NULL ), - _pFilter ( new SvtFileDialogFilterList_Impl() ), - _pUserFilter ( NULL ), - _pFtFileName ( NULL ), - _pEdFileName ( NULL ), - _pFtFileVersion ( NULL ), - _pLbFileVersion ( NULL ), - _pFtTemplates ( NULL ), - _pLbTemplates ( NULL ), - _pFtImageTemplates ( NULL ), - _pLbImageTemplates ( NULL ), - _pFtFileType ( NULL ), - _pBtnFileOpen ( NULL ), - _pBtnCancel ( NULL ), - _pBtnHelp ( NULL ), - _pBtnUp ( NULL ), - _pBtnNewFolder ( NULL ), - _pBtnStandard ( NULL ), - _pCbPassword ( NULL ), - _pFtCurrentPath ( NULL ), - _pCbAutoExtension ( NULL ), - _pCbOptions ( NULL ), - _nState ( FILEDLG_STATE_REMOTE ), - _nStyle ( 0 ), - _bDoubleClick ( sal_False ), - m_bNeedDelayedFilterExecute ( sal_False ), - _pDefaultFilter ( NULL ), - _bMultiSelection ( sal_False ), - _nFixDeltaHeight ( 0 ), - _bFolderHasOpened ( sal_False ) -{ -} - -//***************************************************************************** - -SvtExpFileDlg_Impl::~SvtExpFileDlg_Impl() -{ - delete _pFtCurrentPath; - delete _pCbPassword; - delete _pCbAutoExtension; - delete _pCbOptions; - delete _pBtnStandard; - delete _pBtnNewFolder; - delete _pBtnUp; - delete _pBtnHelp; - delete _pBtnCancel; - delete _pBtnFileOpen; - delete _pLbFilter; - delete _pFtFileType; - delete _pLbFileVersion; - delete _pFtFileVersion; - delete _pFtTemplates; - delete _pLbTemplates; - delete _pFtImageTemplates; - delete _pLbImageTemplates; - delete _pEdFileName; - delete _pFtFileName; - delete _pUserFilter; - delete _pFilter; -} - -//***************************************************************************** - -void SvtExpFileDlg_Impl::SetStandardDir( const String& _rDir ) -{ - _aStdDir = _rDir; - if ( 0 == _aStdDir.Len() ) - _aStdDir.AssignAscii( "file:///" ); -} - -//***************************************************************************** -#if OSL_DEBUG_LEVEL > 0 -//----------------------------------------------------------------------------- -namespace { - String lcl_DecoratedFilter( const String& _rOriginalFilter ) - { - String aDecoratedFilter = '<'; - aDecoratedFilter += _rOriginalFilter; - aDecoratedFilter += '>'; - return aDecoratedFilter; - } -} -#endif -//----------------------------------------------------------------------------- - -void SvtExpFileDlg_Impl::ClearFilterList( ) -{ - _pLbFilter->Clear(); -} - -//----------------------------------------------------------------------------- -void SvtExpFileDlg_Impl::SetCurFilter( SvtFileDialogFilter_Impl* pFilter, const String& rDisplayName ) -{ - DBG_ASSERT( pFilter, "SvtExpFileDlg_Impl::SetCurFilter: invalid filter!" ); - DBG_ASSERT( ( rDisplayName == pFilter->GetName() ) - || ( rDisplayName == lcl_DecoratedFilter( pFilter->GetName() ) ), - "SvtExpFileDlg_Impl::SetCurFilter: arguments are inconsistent!" ); - - _pCurFilter = pFilter; - m_sCurrentFilterDisplayName = rDisplayName; -} - -//----------------------------------------------------------------------------- -void SvtExpFileDlg_Impl::InsertFilterListEntry( const SvtFileDialogFilter_Impl* _pFilterDesc ) -{ - String sName = _pFilterDesc->GetName(); - if ( _pFilterDesc->isGroupSeparator() ) - sName = String::CreateFromAscii( "------------------------------------------" ); - else - sName = _pFilterDesc->GetName(); - - // insert an set user data - sal_uInt16 nPos = _pLbFilter->InsertEntry( sName ); - _pLbFilter->SetEntryData( nPos, const_cast< void* >( static_cast< const void* >( _pFilterDesc ) ) ); -} - -//----------------------------------------------------------------------------- - -void SvtExpFileDlg_Impl::InitFilterList( ) -{ - // clear the current list - ClearFilterList( ); - - // reinit it - sal_uInt16 nPos = _pFilter->Count(); - - // search for the first entry which is no group separator - while ( nPos-- && _pFilter->GetObject( nPos ) && _pFilter->GetObject( nPos )->isGroupSeparator() ) - ; - - // add all following entries - while ( (sal_Int16)nPos >= 0 ) - InsertFilterListEntry( _pFilter->GetObject( nPos-- ) ); -} - -//----------------------------------------------------------------------------- - -void SvtExpFileDlg_Impl::CreateFilterListControl( Window* _pParent, const ResId& _rId ) -{ - DBG_ASSERT( !_pLbFilter, "SvtExpFileDlg_Impl::CreateFilterListControl: already created the control!" ); - if ( !_pLbFilter ) - { - _pLbFilter = new ListBox( _pParent, _rId ); - _pLbFilter->SetDropDownLineCount( 10 ); - } -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |