summaryrefslogtreecommitdiff
path: root/extensions/source/bibliography/toolbar.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'extensions/source/bibliography/toolbar.cxx')
-rw-r--r--extensions/source/bibliography/toolbar.cxx633
1 files changed, 0 insertions, 633 deletions
diff --git a/extensions/source/bibliography/toolbar.cxx b/extensions/source/bibliography/toolbar.cxx
deleted file mode 100644
index 47dd6c5ae..000000000
--- a/extensions/source/bibliography/toolbar.cxx
+++ /dev/null
@@ -1,633 +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_extensions.hxx"
-#include <comphelper/processfactory.hxx>
-#include <tools/urlobj.hxx>
-#include <com/sun/star/frame/XDispatch.hpp>
-#include <com/sun/star/frame/XDispatchProvider.hpp>
-#include <com/sun/star/util/XURLTransformer.hpp>
-#include <com/sun/star/frame/FrameSearchFlag.hpp>
-#include <datman.hxx>
-#include <tools/debug.hxx>
-#include <svx/svxids.hrc>
-#include <svtools/miscopt.hxx>
-#include <svtools/imgdef.hxx>
-#include <vcl/svapp.hxx>
-#include <vcl/mnemonic.hxx>
-#include "bibbeam.hxx"
-#include "toolbar.hrc"
-#include "bibresid.hxx"
-
-#include "bibtools.hxx"
-#include <osl/mutex.hxx>
-
-using namespace ::rtl;
-using namespace ::com::sun::star;
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::beans;
-#define C2U(cChar) OUString::createFromAscii(cChar)
-
-
-// Konstanten -------------------------------------------------------------
-
-
-BibToolBarListener::BibToolBarListener(BibToolBar *pTB,rtl::OUString aStr,sal_uInt16 nId):
- nIndex(nId),
- aCommand(aStr),
- pToolBar(pTB)
-{
-}
-
-BibToolBarListener::~BibToolBarListener()
-{
-}
-
-void BibToolBarListener::statusChanged(const ::com::sun::star::frame::FeatureStateEvent& rEvt)throw( ::com::sun::star::uno::RuntimeException )
-{
- if(rEvt.FeatureURL.Complete == aCommand)
- {
- SolarMutexGuard aGuard;
- pToolBar->EnableItem(nIndex,rEvt.IsEnabled);
-
- ::com::sun::star::uno::Any aState=rEvt.State;
- if(aState.getValueType()==::getBooleanCppuType())
- {
- sal_Bool bChecked= *(sal_Bool*)aState.getValue();
- pToolBar->CheckItem(nIndex, bChecked);
- }
-
- }
-};
-
-rtl::OUString BibToolBarListener::GetCommand() const
-{
- return aCommand;
-}
-
-BibTBListBoxListener::BibTBListBoxListener(BibToolBar *pTB,rtl::OUString aStr,sal_uInt16 nId):
- BibToolBarListener(pTB,aStr,nId)
-{
-}
-
-BibTBListBoxListener::~BibTBListBoxListener()
-{
-}
-
-void BibTBListBoxListener::statusChanged(const ::com::sun::star::frame::FeatureStateEvent& rEvt)throw( ::com::sun::star::uno::RuntimeException )
-{
- if(rEvt.FeatureURL.Complete == GetCommand())
- {
- SolarMutexGuard aGuard;
- pToolBar->EnableSourceList(rEvt.IsEnabled);
-
- Any aState = rEvt.State;
- if(aState.getValueType() == ::getCppuType((Sequence<rtl::OUString>*)0))
- {
- pToolBar->UpdateSourceList(sal_False);
- pToolBar->ClearSourceList();
-
- Sequence<rtl::OUString>* pStringSeq = (Sequence<rtl::OUString>*)aState.getValue();
- const rtl::OUString* pStringArray = (const rtl::OUString*)pStringSeq->getConstArray();
-
- sal_uInt32 nCount = pStringSeq->getLength();
- XubString aEntry;
- for( sal_uInt32 i=0; i<nCount; i++ )
- {
- aEntry = String(pStringArray[i]);
- pToolBar->InsertSourceEntry(aEntry);
- }
- pToolBar->UpdateSourceList(sal_True);
- }
-
- XubString aStr = String(rEvt.FeatureDescriptor);
- pToolBar->SelectSourceEntry(aStr);
- }
-};
-
-BibTBQueryMenuListener::BibTBQueryMenuListener(BibToolBar *pTB,rtl::OUString aStr,sal_uInt16 nId):
- BibToolBarListener(pTB,aStr,nId)
-{
-}
-
-BibTBQueryMenuListener::~BibTBQueryMenuListener()
-{
-}
-
-void BibTBQueryMenuListener::statusChanged(const frame::FeatureStateEvent& rEvt)throw( uno::RuntimeException )
-{
- if(rEvt.FeatureURL.Complete == GetCommand())
- {
- SolarMutexGuard aGuard;
- pToolBar->EnableSourceList(rEvt.IsEnabled);
-
- uno::Any aState=rEvt.State;
- if(aState.getValueType()==::getCppuType((Sequence<rtl::OUString>*)0))
- {
- pToolBar->ClearFilterMenu();
-
- Sequence<rtl::OUString>* pStringSeq = (Sequence<rtl::OUString>*) aState.getValue();
- const rtl::OUString* pStringArray = (const rtl::OUString*)pStringSeq->getConstArray();
-
- sal_uInt32 nCount = pStringSeq->getLength();
- for( sal_uInt32 i=0; i<nCount; i++ )
- {
- sal_uInt16 nID=pToolBar->InsertFilterItem(String(pStringArray[i]));
- if(pStringArray[i]==rEvt.FeatureDescriptor)
- {
- pToolBar->SelectFilterItem(nID);
- }
- }
- }
- }
-};
-
-BibTBEditListener::BibTBEditListener(BibToolBar *pTB,rtl::OUString aStr,sal_uInt16 nId):
- BibToolBarListener(pTB,aStr,nId)
-{
-}
-
-BibTBEditListener::~BibTBEditListener()
-{
-}
-
-void BibTBEditListener::statusChanged(const frame::FeatureStateEvent& rEvt)throw( uno::RuntimeException )
-{
- if(rEvt.FeatureURL.Complete == GetCommand())
- {
- SolarMutexGuard aGuard;
- pToolBar->EnableQuery(rEvt.IsEnabled);
-
- uno::Any aState=rEvt.State;
- if(aState.getValueType()==::getCppuType((const OUString*)0))
- {
- String aStr = String(*(OUString*) aState.getValue());
- pToolBar->SetQueryString(aStr);
- }
- }
-}
-
-SV_IMPL_PTRARR( BibToolBarListenerArr, BibToolBarListenerPtr);
-
-BibToolBar::BibToolBar(Window* pParent, Link aLink, WinBits nStyle):
- ToolBox(pParent,BibResId(RID_BIB_TOOLBAR)),
- aImgLst(BibResId( RID_TOOLBAR_IMGLIST )),
- aBigImgLst(BibResId( RID_TOOLBAR_BIGIMGLIST )),
- aFtSource(this,WB_VCENTER),
- aLBSource(this,WB_DROPDOWN),
- aFtQuery(this,WB_VCENTER),
- aEdQuery(this),
- nMenuId(0),
- nSelMenuItem(0),
- aLayoutManager( aLink ),
- nSymbolsSize( SFX_SYMBOLS_SIZE_SMALL ),
- nOutStyle( 0 )
-{
- SvtMiscOptions aSvtMiscOptions;
- nSymbolsSize = aSvtMiscOptions.GetCurrentSymbolsSize();
- nOutStyle = aSvtMiscOptions.GetToolboxStyle();
-
- ApplyImageList();
- SetStyle(GetStyle()|nStyle);
- SetOutStyle(TOOLBOX_STYLE_FLAT);
- Size a2Size(GetOutputSizePixel());
- a2Size.Width()=100;
- aLBSource.SetSizePixel(a2Size);
- aLBSource.SetDropDownLineCount(9);
- aLBSource.Show();
- aLBSource.SetSelectHdl(LINK( this, BibToolBar, SelHdl));
-
- SvtMiscOptions().AddListenerLink( LINK( this, BibToolBar, OptionsChanged_Impl ) );
- Application::AddEventListener( LINK( this, BibToolBar, SettingsChanged_Impl ) );
-
- aTimer.SetTimeoutHdl(LINK( this, BibToolBar, SendSelHdl));
- aTimer.SetTimeout(400);
-
- SetDropdownClickHdl( LINK( this, BibToolBar, MenuHdl));
-
- aEdQuery.SetSizePixel(aLBSource.GetSizePixel());
- aEdQuery.Show();
-
- XubString aStr=GetItemText(TBC_FT_SOURCE);
- Rectangle aRect=GetItemRect(TBC_FT_SOURCE);
- aFtSource.SetText(aStr);
- aFtSource.SetSizePixel(aRect.GetSize());
- aFtSource.SetBackground(Wallpaper( COL_TRANSPARENT ));
-
- aStr=GetItemText(TBC_FT_QUERY);
- aRect=GetItemRect(TBC_FT_QUERY);
- aFtQuery.SetText(aStr);
- aFtQuery.SetSizePixel(aRect.GetSize());
- aFtQuery.SetBackground(Wallpaper( COL_TRANSPARENT ));
-
- SetItemWindow(TBC_FT_SOURCE,&aFtSource);
- SetItemWindow(TBC_LB_SOURCE,&aLBSource);
- SetItemWindow(TBC_FT_QUERY ,&aFtQuery);
- SetItemWindow(TBC_ED_QUERY ,&aEdQuery);
-
- ::bib::AddToTaskPaneList( this );
-}
-
-BibToolBar::~BibToolBar()
-{
- SvtMiscOptions().RemoveListenerLink( LINK( this, BibToolBar, OptionsChanged_Impl ) );
- Application::RemoveEventListener( LINK( this, BibToolBar, SettingsChanged_Impl ) );
- ::bib::RemoveFromTaskPaneList( this );
-}
-
-void BibToolBar::InitListener()
-{
- sal_uInt16 nCount=GetItemCount();
-
- uno::Reference< lang::XMultiServiceFactory > xMgr = comphelper::getProcessServiceFactory();
- uno::Reference< frame::XDispatch > xDisp(xController,UNO_QUERY);
-
- uno::Reference< util::XURLTransformer > xTrans ( xMgr->createInstance( C2U("com.sun.star.util.URLTransformer") ), UNO_QUERY );
- if( xTrans.is() )
- {
- util::URL aQueryURL;
- aQueryURL.Complete = C2U(".uno:Bib/MenuFilter");
- xTrans->parseStrict( aQueryURL);
- BibToolBarListener* pQuery=new BibTBQueryMenuListener(this,aQueryURL.Complete,TBC_BT_AUTOFILTER);
- xDisp->addStatusListener(uno::Reference< frame::XStatusListener > (pQuery),aQueryURL);
-
- for(sal_uInt16 nPos=0;nPos<nCount;nPos++)
- {
- sal_uInt16 nId=GetItemId(nPos);
- if(!nId || nId==TBC_FT_SOURCE || nId==TBC_FT_QUERY)
- continue;
-
- util::URL aURL;
- aURL.Complete = GetItemCommand(nId);
- if(!aURL.Complete.getLength())
- continue;
-
- xTrans->parseStrict( aURL );
-
- BibToolBarListener* pListener=NULL;
- if(nId==TBC_LB_SOURCE)
- {
- pListener=new BibTBListBoxListener(this,aURL.Complete,nId);
- }
- else if(nId==TBC_ED_QUERY)
- {
- pListener=new BibTBEditListener(this,aURL.Complete,nId);
- }
- else
- {
- pListener=new BibToolBarListener(this,aURL.Complete,nId);
- }
-
- BibToolBarListenerPtr pxInsert = new Reference<frame::XStatusListener>;
- (*pxInsert) = pListener;
- aListenerArr.Insert( pxInsert, aListenerArr.Count() );
- xDisp->addStatusListener(uno::Reference< frame::XStatusListener > (pListener),aURL);
- }
- }
-}
-
-void BibToolBar::SetXController(const uno::Reference< frame::XController > & xCtr)
-{
- xController=xCtr;
- InitListener();
-
-}
-
-void BibToolBar::Select()
-{
- sal_uInt16 nId=GetCurItemId();
-
- if(nId!=TBC_BT_AUTOFILTER)
- {
- SendDispatch(nId,Sequence<PropertyValue>() );
- }
- else
- {
- Sequence<PropertyValue> aPropVal(2);
- PropertyValue* pPropertyVal = (PropertyValue*)aPropVal.getConstArray();
- pPropertyVal[0].Name=C2U("QueryText");
- rtl::OUString aSelection = aEdQuery.GetText();
- pPropertyVal[0].Value <<= aSelection;
-
- pPropertyVal[1].Name=C2U("QueryField");
- pPropertyVal[1].Value <<= aQueryField;
- SendDispatch(nId,aPropVal);
- }
-}
-
-void BibToolBar::SendDispatch(sal_uInt16 nId, const Sequence< PropertyValue >& rArgs)
-{
- rtl::OUString aCommand = GetItemCommand(nId);
-
- uno::Reference< frame::XDispatchProvider > xDSP( xController, UNO_QUERY );
-
- if( xDSP.is() && aCommand.getLength())
- {
- uno::Reference< lang::XMultiServiceFactory > xMgr = comphelper::getProcessServiceFactory();
-
- uno::Reference< util::XURLTransformer > xTrans ( xMgr->createInstance( C2U("com.sun.star.util.URLTransformer") ), UNO_QUERY );
- if( xTrans.is() )
- {
- // Datei laden
- util::URL aURL;
- aURL.Complete = aCommand;
-
- xTrans->parseStrict( aURL );
-
- uno::Reference< frame::XDispatch > xDisp = xDSP->queryDispatch( aURL, rtl::OUString(), frame::FrameSearchFlag::SELF );
-
- if ( xDisp.is() )
- xDisp->dispatch( aURL, rArgs);
- }
- }
-
-}
-
-void BibToolBar::Click()
-{
- sal_uInt16 nId=GetCurItemId();
-
- if(nId == TBC_BT_COL_ASSIGN )
- {
- if(pDatMan)
- pDatMan->CreateMappingDialog(GetParent());
- CheckItem( nId, sal_False );
- }
- else if(nId == TBC_BT_CHANGESOURCE)
- {
- if(pDatMan)
- {
- OUString sNew = pDatMan->CreateDBChangeDialog(GetParent());
- if(sNew.getLength())
- pDatMan->setActiveDataSource(sNew);
- }
- CheckItem( nId, sal_False );
- }
-}
-
-void BibToolBar::ClearFilterMenu()
-{
- aPopupMenu.Clear();
- nMenuId=0;
-}
-sal_uInt16 BibToolBar::InsertFilterItem(const XubString& aMenuEntry)
-{
- nMenuId++;
- aPopupMenu.InsertItem(nMenuId,aMenuEntry);
-
- return nMenuId;
-}
-void BibToolBar::SelectFilterItem(sal_uInt16 nId)
-{
- aPopupMenu.CheckItem(nId);
- nSelMenuItem=nId;
- aQueryField = MnemonicGenerator::EraseAllMnemonicChars( aPopupMenu.GetItemText(nId) );
-}
-
-void BibToolBar::EnableSourceList(sal_Bool bFlag)
-{
- aFtSource.Enable(bFlag);
- aLBSource.Enable(bFlag);
-}
-
-void BibToolBar::ClearSourceList()
-{
- aLBSource.Clear();
-}
-
-void BibToolBar::UpdateSourceList(sal_Bool bFlag)
-{
- aLBSource.SetUpdateMode(bFlag);
-}
-
-void BibToolBar::InsertSourceEntry(const XubString& aEntry, sal_uInt16 nPos)
-{
- aLBSource.InsertEntry(aEntry, nPos);
-}
-
-void BibToolBar::SelectSourceEntry(const XubString& aStr)
-{
- aLBSource.SelectEntry(aStr);
-}
-
-void BibToolBar::EnableQuery(sal_Bool bFlag)
-{
- aFtQuery.Enable(bFlag);
- aEdQuery.Enable(bFlag);
-}
-
-void BibToolBar::SetQueryString(const XubString& aStr)
-{
- aEdQuery.SetText(aStr);
-}
-
-
-long BibToolBar::PreNotify( NotifyEvent& rNEvt )
-{
- long nResult=sal_True;
-
- sal_uInt16 nSwitch=rNEvt.GetType();
- if(aEdQuery.HasFocus() && nSwitch==EVENT_KEYINPUT)
- {
- const KeyCode& aKeyCode=rNEvt.GetKeyEvent()->GetKeyCode();
- sal_uInt16 nKey = aKeyCode.GetCode();
- if(nKey == KEY_RETURN)
- {
- Sequence<PropertyValue> aPropVal(2);
- PropertyValue* pPropertyVal = (PropertyValue*)aPropVal.getConstArray();
- pPropertyVal[0].Name = C2U("QueryText");
- rtl::OUString aSelection = aEdQuery.GetText();
- pPropertyVal[0].Value <<= aSelection;
- pPropertyVal[1].Name=C2U("QueryField");
- pPropertyVal[1].Value <<= aQueryField;
- SendDispatch(TBC_BT_AUTOFILTER,aPropVal);
- return nResult;
- }
-
- }
-
- nResult=ToolBox::PreNotify(rNEvt);
-
- return nResult;
-}
-
-IMPL_LINK( BibToolBar, SelHdl, ListBox*, /*pLb*/ )
-{
- aTimer.Start();
- return 0;
-}
-
-IMPL_LINK( BibToolBar, SendSelHdl, Timer*,/*pT*/)
-{
- Sequence<PropertyValue> aPropVal(1);
- PropertyValue* pPropertyVal = (PropertyValue*)aPropVal.getConstArray();
- pPropertyVal[0].Name = C2U("DataSourceName");
- String aEntry( MnemonicGenerator::EraseAllMnemonicChars( aLBSource.GetSelectEntry() ) );
- rtl::OUString aSelection = aEntry;
- pPropertyVal[0].Value <<= aSelection;
- SendDispatch(TBC_LB_SOURCE,aPropVal);
-
- return 0;
-}
-//-----------------------------------------------------------------------------
-IMPL_LINK( BibToolBar, MenuHdl, ToolBox*, /*pToolbox*/)
-{
- sal_uInt16 nId=GetCurItemId();
- if(nId==TBC_BT_AUTOFILTER)
- {
- EndSelection(); // vor SetDropMode (SetDropMode ruft SetItemImage)
-
- SetItemDown(TBC_BT_AUTOFILTER,sal_True);
- nId = aPopupMenu.Execute(this, GetItemRect(TBC_BT_AUTOFILTER));
-
-
- if(nId>0)
- {
- aPopupMenu.CheckItem(nSelMenuItem,sal_False);
- aPopupMenu.CheckItem(nId);
- nSelMenuItem=nId;
- aQueryField = MnemonicGenerator::EraseAllMnemonicChars( aPopupMenu.GetItemText(nId) );
- Sequence<PropertyValue> aPropVal(2);
- PropertyValue* pPropertyVal = (PropertyValue*)aPropVal.getConstArray();
- pPropertyVal[0].Name = C2U("QueryText");
- rtl::OUString aSelection = aEdQuery.GetText();
- pPropertyVal[0].Value <<= aSelection;
- pPropertyVal[1].Name=C2U("QueryField");
- pPropertyVal[1].Value <<= aQueryField;
- SendDispatch(TBC_BT_AUTOFILTER,aPropVal);
- }
-
- Point aPoint;
- MouseEvent aLeave( aPoint, 0, MOUSE_LEAVEWINDOW | MOUSE_SYNTHETIC );
- MouseMove( aLeave );
- SetItemDown(TBC_BT_AUTOFILTER,sal_False);
-
-
- }
- return 0;
-}
-//-----------------------------------------------------------------------------
-void BibToolBar::statusChanged(const frame::FeatureStateEvent& rEvent)
- throw( uno::RuntimeException )
-{
- for(sal_uInt16 i = 0; i < aListenerArr.Count(); i++)
- {
- BibToolBarListenerPtr pListener = aListenerArr.GetObject(i);
- (*pListener)->statusChanged(rEvent);
- }
-}
-
-void BibToolBar::DataChanged( const DataChangedEvent& rDCEvt )
-{
- if ( (rDCEvt.GetType() == DATACHANGED_SETTINGS) &&
- (rDCEvt.GetFlags() & SETTINGS_STYLE) )
- ApplyImageList();
- ToolBox::DataChanged( rDCEvt );
-}
-
-IMPL_LINK( BibToolBar, OptionsChanged_Impl, void*, /*pVoid*/ )
-{
- sal_Bool bRebuildToolBar = sal_False;
- sal_Int16 eSymbolsSize = SvtMiscOptions().GetCurrentSymbolsSize();
- if ( nSymbolsSize != eSymbolsSize )
- {
- nSymbolsSize = eSymbolsSize;
- bRebuildToolBar = sal_True;
- }
- else if ( nOutStyle != SvtMiscOptions().GetToolboxStyle() )
- {
- nOutStyle = SvtMiscOptions().GetToolboxStyle();
- SetOutStyle( nOutStyle );
- bRebuildToolBar = sal_True;
- }
-
- if ( bRebuildToolBar )
- RebuildToolbar();
-
- return 0L;
-}
-
-//-----------------------------------------------------------------------------
-
-IMPL_LINK( BibToolBar, SettingsChanged_Impl, void*, /*pVoid*/ )
-{
- // Check if toolbar button size have changed and we have to use system settings
- sal_Int16 eSymbolsSize = SvtMiscOptions().GetCurrentSymbolsSize();
- if ( eSymbolsSize != nSymbolsSize )
- {
- nSymbolsSize = eSymbolsSize;
- RebuildToolbar();
- }
-
- return 0L;
-}
-
-//-----------------------------------------------------------------------------
-void BibToolBar::RebuildToolbar()
-{
- ApplyImageList();
- // We have to call parent asynchronously as SetSize works also asynchronously!
- Application::PostUserEvent( aLayoutManager, 0 );
-}
-
-//-----------------------------------------------------------------------------
-
-void BibToolBar::ApplyImageList()
-{
- ImageList& rList = ( nSymbolsSize == SFX_SYMBOLS_SIZE_SMALL ) ?
- ( aImgLst ) :
- ( aBigImgLst );
-
- SetItemImage(TBC_BT_AUTOFILTER , rList.GetImage(SID_FM_AUTOFILTER));
- SetItemImage(TBC_BT_FILTERCRIT , rList.GetImage(SID_FM_FILTERCRIT));
- SetItemImage(TBC_BT_REMOVEFILTER, rList.GetImage(SID_FM_REMOVE_FILTER_SORT ));
- AdjustToolBox();
-}
-
-void BibToolBar::AdjustToolBox()
-{
- Size aOldSize = GetSizePixel();
- Size aSize = CalcWindowSizePixel();
- if ( !aSize.Width() )
- aSize.Width() = aOldSize.Width();
- else if ( !aSize.Height() )
- aSize.Height() = aOldSize.Height();
-
- Size aTbSize = GetSizePixel();
- if (
- (aSize.Width() && aSize.Width() != aTbSize.Width()) ||
- (aSize.Height() && aSize.Height() != aTbSize.Height())
- )
- {
- SetPosSizePixel( GetPosPixel(), aSize );
- Invalidate();
- }
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */