accessibility/Library_acc.mk | 3 accessibility/inc/accessibility/extended/AccessibleToolPanelDeck.hxx | 77 accessibility/inc/accessibility/extended/AccessibleToolPanelDeckTabBar.hxx | 78 accessibility/inc/accessibility/extended/AccessibleToolPanelDeckTabBarItem.hxx | 94 accessibility/source/extended/AccessibleToolPanelDeck.cxx | 357 -- accessibility/source/extended/AccessibleToolPanelDeckTabBar.cxx | 398 -- accessibility/source/extended/AccessibleToolPanelDeckTabBarItem.cxx | 391 -- accessibility/source/helper/acc_factory.cxx | 27 framework/source/fwe/classes/sfxhelperfunctions.cxx | 21 framework/source/layoutmanager/layoutmanager.cxx | 7 include/framework/sfxhelperfunctions.hxx | 9 include/sfx2/module.hxx | 2 include/sfx2/sfxsids.hrc | 1 include/sfx2/taskpane.hxx | 190 - include/sfx2/viewfrm.hxx | 3 include/svtools/accessiblefactory.hxx | 14 include/svtools/svtools.hrc | 6 include/svtools/toolpanel/decklayouter.hxx | 100 include/svtools/toolpanel/drawerlayouter.hxx | 88 include/svtools/toolpanel/paneltabbar.hxx | 97 include/svtools/toolpanel/tabalignment.hxx | 42 include/svtools/toolpanel/tabitemcontent.hxx | 43 include/svtools/toolpanel/tablayouter.hxx | 94 include/svtools/toolpanel/toolpanel.hxx | 134 include/svtools/toolpanel/toolpaneldeck.hxx | 185 - officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu | 5 sc/source/ui/app/scdll.cxx | 2 sd/sdi/ViewShellBase.sdi | 5 sd/source/ui/inc/PaneChildWindows.hxx | 1 sd/source/ui/view/GraphicViewShellBase.cxx | 1 sfx2/AllLangResTarget_sfx2.mk | 1 sfx2/Library_sfx.mk | 1 sfx2/inc/pch/precompiled_sfx.hxx | 2 sfx2/sdi/frmslots.sdi | 5 sfx2/sdi/sfx.sdi | 26 sfx2/source/appl/app.cxx | 1 sfx2/source/appl/appreg.cxx | 1 sfx2/source/appl/module.cxx | 12 sfx2/source/appl/workwin.cxx | 45 sfx2/source/dialog/dialog.src | 4 sfx2/source/dialog/taskpane.cxx | 1242 --------- sfx2/source/dialog/taskpane.src | 42 sfx2/source/inc/workwin.hxx | 1 sfx2/source/view/impviewframe.hxx | 2 sfx2/source/view/viewfrm.cxx | 65 starmath/source/smdll.cxx | 3 starmath/source/view.cxx | 1 starmath/uiconfig/smath/menubar/menubar.xml | 2 svtools/AllLangResTarget_svt.mk | 1 svtools/Library_svt.mk | 13 svtools/inc/pch/precompiled_svt.hxx | 1 svtools/source/misc/svtaccessiblefactory.cxx | 18 svtools/source/toolpanel/drawerlayouter.cxx | 285 -- svtools/source/toolpanel/dummypanel.cxx | 98 svtools/source/toolpanel/dummypanel.hxx | 62 svtools/source/toolpanel/paneldecklisteners.cxx | 131 svtools/source/toolpanel/paneldecklisteners.hxx | 67 svtools/source/toolpanel/paneltabbar.cxx | 1371 ---------- svtools/source/toolpanel/paneltabbarpeer.cxx | 92 svtools/source/toolpanel/paneltabbarpeer.hxx | 61 svtools/source/toolpanel/tabbargeometry.cxx | 322 -- svtools/source/toolpanel/tabbargeometry.hxx | 128 svtools/source/toolpanel/tabitemdescriptor.hxx | 85 svtools/source/toolpanel/tablayouter.cxx | 205 - svtools/source/toolpanel/toolpanel.cxx | 44 svtools/source/toolpanel/toolpanel.src | 42 svtools/source/toolpanel/toolpanelcollection.cxx | 187 - svtools/source/toolpanel/toolpanelcollection.hxx | 64 svtools/source/toolpanel/toolpaneldeck.cxx | 529 --- svtools/source/toolpanel/toolpaneldeckpeer.cxx | 90 svtools/source/toolpanel/toolpaneldeckpeer.hxx | 61 svtools/source/toolpanel/toolpaneldrawer.cxx | 352 -- svtools/source/toolpanel/toolpaneldrawer.hxx | 105 svtools/source/toolpanel/toolpaneldrawerpeer.cxx | 134 svtools/source/toolpanel/toolpaneldrawerpeer.hxx | 51 sw/source/uibase/app/swmodule.cxx | 2 76 files changed, 16 insertions(+), 8516 deletions(-)
New commits: commit 7dd77a12713c0557c5826d3541e97ef6120e1d00 Author: Samuel Mehrbrodt <samuel.mehrbr...@cib.de> Date: Tue Dec 15 17:22:39 2015 +0100 Remove unused ToolPanel (aka TaskPane) Superseded by the Sidebar Change-Id: I54970d71cd9d42de4f47b223e50dd9474b40632a Reviewed-on: https://gerrit.libreoffice.org/20724 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Samuel Mehrbrodt <samuel.mehrbr...@cib.de> diff --git a/accessibility/Library_acc.mk b/accessibility/Library_acc.mk index 4b5a10b..3d12cb2 100644 --- a/accessibility/Library_acc.mk +++ b/accessibility/Library_acc.mk @@ -54,9 +54,6 @@ $(eval $(call gb_Library_add_exception_objects,acc,\ accessibility/source/extended/AccessibleGridControlTable \ accessibility/source/extended/AccessibleGridControlTableBase \ accessibility/source/extended/AccessibleGridControlTableCell \ - accessibility/source/extended/AccessibleToolPanelDeck \ - accessibility/source/extended/AccessibleToolPanelDeckTabBar \ - accessibility/source/extended/AccessibleToolPanelDeckTabBarItem \ accessibility/source/extended/accessiblebrowseboxcell \ accessibility/source/extended/accessibleeditbrowseboxcell \ accessibility/source/extended/accessibleiconchoicectrl \ diff --git a/accessibility/inc/accessibility/extended/AccessibleToolPanelDeck.hxx b/accessibility/inc/accessibility/extended/AccessibleToolPanelDeck.hxx deleted file mode 100644 index 529b4fe..0000000 --- a/accessibility/inc/accessibility/extended/AccessibleToolPanelDeck.hxx +++ /dev/null @@ -1,77 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * This file incorporates work covered by the following license notice: - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed - * with this work for additional information regarding copyright - * ownership. The ASF licenses this file to you under the Apache - * License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.apache.org/licenses/LICENSE-2.0 . - */ - -#ifndef INCLUDED_ACCESSIBILITY_INC_ACCESSIBILITY_EXTENDED_ACCESSIBLETOOLPANELDECK_HXX -#define INCLUDED_ACCESSIBILITY_INC_ACCESSIBILITY_EXTENDED_ACCESSIBLETOOLPANELDECK_HXX - -#include <toolkit/awt/vclxaccessiblecomponent.hxx> - -#include <memory> - -namespace svt -{ - class ToolPanelDeck; -} - -namespace accessibility -{ - - class AccessibleToolPanelDeck_Impl; - - class AccessibleToolPanelDeck: public VCLXAccessibleComponent - { - public: - AccessibleToolPanelDeck( - const css::uno::Reference< css::accessibility::XAccessible >& i_rAccessibleParent, - ::svt::ToolPanelDeck& i_rPanelDeck - ); - - using VCLXAccessibleComponent::NotifyAccessibleEvent; - - protected: - virtual ~AccessibleToolPanelDeck(); - - // XAccessibleContext - virtual sal_Int32 SAL_CALL getAccessibleChildCount( ) throw (css::uno::RuntimeException, std::exception) override; - virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int32 i ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override; - virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleParent( ) throw (css::uno::RuntimeException, std::exception) override; - virtual sal_Int16 SAL_CALL getAccessibleRole( ) throw (css::uno::RuntimeException, std::exception) override; - - // XAccessibleComponent - virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleAtPoint( const css::awt::Point& aPoint ) throw (css::uno::RuntimeException, std::exception) override; - virtual void SAL_CALL grabFocus( ) throw (css::uno::RuntimeException, std::exception) override; - - // OComponentHelper - virtual void SAL_CALL disposing() override; - - // VCLXAccessibleComponent - virtual css::uno::Reference< css::accessibility::XAccessible > GetChildAccessible( const VclWindowEvent& i_rVclWindowEvent ) override; - virtual void FillAccessibleStateSet( ::utl::AccessibleStateSetHelper& i_rStateSet ) override; - - private: - std::unique_ptr< AccessibleToolPanelDeck_Impl > m_xImpl; - }; - - -} // namespace accessibility - - -#endif // INCLUDED_ACCESSIBILITY_INC_ACCESSIBILITY_EXTENDED_ACCESSIBLETOOLPANELDECK_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/accessibility/inc/accessibility/extended/AccessibleToolPanelDeckTabBar.hxx b/accessibility/inc/accessibility/extended/AccessibleToolPanelDeckTabBar.hxx deleted file mode 100644 index dd38ff5..0000000 --- a/accessibility/inc/accessibility/extended/AccessibleToolPanelDeckTabBar.hxx +++ /dev/null @@ -1,78 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * This file incorporates work covered by the following license notice: - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed - * with this work for additional information regarding copyright - * ownership. The ASF licenses this file to you under the Apache - * License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.apache.org/licenses/LICENSE-2.0 . - */ - -#ifndef INCLUDED_ACCESSIBILITY_INC_ACCESSIBILITY_EXTENDED_ACCESSIBLETOOLPANELDECKTABBAR_HXX -#define INCLUDED_ACCESSIBILITY_INC_ACCESSIBILITY_EXTENDED_ACCESSIBLETOOLPANELDECKTABBAR_HXX - -#include <toolkit/awt/vclxaccessiblecomponent.hxx> - -#include <memory> - -namespace svt -{ - class IToolPanelDeck; - class PanelTabBar; -} - -namespace accessibility -{ - - class AccessibleToolPanelTabBar_Impl; - - class AccessibleToolPanelTabBar: public VCLXAccessibleComponent - { - public: - AccessibleToolPanelTabBar( - const css::uno::Reference< css::accessibility::XAccessible >& i_rAccessibleParent, - ::svt::IToolPanelDeck& i_rPanelDeck, - ::svt::PanelTabBar& i_rTabBar - ); - - using VCLXAccessibleComponent::NotifyAccessibleEvent; - - protected: - virtual ~AccessibleToolPanelTabBar(); - - // XAccessibleContext - virtual sal_Int32 SAL_CALL getAccessibleChildCount( ) throw (css::uno::RuntimeException, std::exception) override; - virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int32 i ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override; - virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleParent( ) throw (css::uno::RuntimeException, std::exception) override; - virtual sal_Int16 SAL_CALL getAccessibleRole( ) throw (css::uno::RuntimeException, std::exception) override; - - // XAccessibleComponent - virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleAtPoint( const css::awt::Point& aPoint ) throw (css::uno::RuntimeException, std::exception) override; - - // OComponentHelper - virtual void SAL_CALL disposing() override; - - // VCLXAccessibleComponent - virtual css::uno::Reference< css::accessibility::XAccessible > GetChildAccessible( const VclWindowEvent& i_rVclWindowEvent ) override; - virtual void FillAccessibleStateSet( ::utl::AccessibleStateSetHelper& i_rStateSet ) override; - - private: - std::unique_ptr< AccessibleToolPanelTabBar_Impl > m_xImpl; - }; - - -} // namespace accessibility - - -#endif // INCLUDED_ACCESSIBILITY_INC_ACCESSIBILITY_EXTENDED_ACCESSIBLETOOLPANELDECKTABBAR_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/accessibility/inc/accessibility/extended/AccessibleToolPanelDeckTabBarItem.hxx b/accessibility/inc/accessibility/extended/AccessibleToolPanelDeckTabBarItem.hxx deleted file mode 100644 index 71aa2dd..0000000 --- a/accessibility/inc/accessibility/extended/AccessibleToolPanelDeckTabBarItem.hxx +++ /dev/null @@ -1,94 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * This file incorporates work covered by the following license notice: - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed - * with this work for additional information regarding copyright - * ownership. The ASF licenses this file to you under the Apache - * License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.apache.org/licenses/LICENSE-2.0 . - */ - -#ifndef INCLUDED_ACCESSIBILITY_INC_ACCESSIBILITY_EXTENDED_ACCESSIBLETOOLPANELDECKTABBARITEM_HXX -#define INCLUDED_ACCESSIBILITY_INC_ACCESSIBILITY_EXTENDED_ACCESSIBLETOOLPANELDECKTABBARITEM_HXX - -#include <comphelper/accessiblecomponenthelper.hxx> - -#include <memory> - -namespace svt -{ - class IToolPanelDeck; - class PanelTabBar; -} - -namespace accessibility -{ - - class AccessibleToolPanelDeckTabBarItem_Impl; - - class AccessibleToolPanelDeckTabBarItem: - public comphelper::OAccessibleExtendedComponentHelper - { - public: - AccessibleToolPanelDeckTabBarItem( - const css::uno::Reference< css::accessibility::XAccessible >& i_rAccessibleParent, - ::svt::IToolPanelDeck& i_rPanelDeck, - ::svt::PanelTabBar& i_rTabBar, - const size_t i_nItemPos - ); - - using OAccessibleExtendedComponentHelper::NotifyAccessibleEvent; - using OAccessibleExtendedComponentHelper::lateInit; - - protected: - virtual ~AccessibleToolPanelDeckTabBarItem(); - - public: - // XAccessibleContext - virtual sal_Int32 SAL_CALL getAccessibleChildCount( ) throw (css::uno::RuntimeException, std::exception) override; - virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int32 i ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override; - virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleParent( ) throw (css::uno::RuntimeException, std::exception) override; - virtual sal_Int16 SAL_CALL getAccessibleRole( ) throw (css::uno::RuntimeException, std::exception) override; - virtual OUString SAL_CALL getAccessibleDescription( ) throw (css::uno::RuntimeException, std::exception) override; - virtual OUString SAL_CALL getAccessibleName( ) throw (css::uno::RuntimeException, std::exception) override; - virtual css::uno::Reference< css::accessibility::XAccessibleRelationSet > SAL_CALL getAccessibleRelationSet( ) throw (css::uno::RuntimeException, std::exception) override; - virtual css::uno::Reference< css::accessibility::XAccessibleStateSet > SAL_CALL getAccessibleStateSet( ) throw (css::uno::RuntimeException, std::exception) override; - - // XAccessibleComponent - virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleAtPoint( const css::awt::Point& aPoint ) throw (css::uno::RuntimeException, std::exception) override; - virtual void SAL_CALL grabFocus( ) throw (css::uno::RuntimeException, std::exception) override; - virtual ::sal_Int32 SAL_CALL getForeground( ) throw (css::uno::RuntimeException, std::exception) override; - virtual ::sal_Int32 SAL_CALL getBackground( ) throw (css::uno::RuntimeException, std::exception) override; - - // XAccessibleExtendedComponent - virtual css::uno::Reference< css::awt::XFont > SAL_CALL getFont( ) throw (css::uno::RuntimeException, std::exception) override; - virtual OUString SAL_CALL getTitledBorderText( ) throw (css::uno::RuntimeException, std::exception) override; - virtual OUString SAL_CALL getToolTipText( ) throw (css::uno::RuntimeException, std::exception) override; - - protected: - // OCommonAccessibleComponent - virtual css::awt::Rectangle implGetBounds( ) throw (css::uno::RuntimeException) override; - - // OComponentHelper - virtual void SAL_CALL disposing() override; - - protected: - std::unique_ptr< AccessibleToolPanelDeckTabBarItem_Impl > m_xImpl; - }; - - -} // namespace accessibility - - -#endif // INCLUDED_ACCESSIBILITY_INC_ACCESSIBILITY_EXTENDED_ACCESSIBLETOOLPANELDECKTABBARITEM_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/accessibility/source/extended/AccessibleToolPanelDeck.cxx b/accessibility/source/extended/AccessibleToolPanelDeck.cxx deleted file mode 100644 index 863faa4..0000000 --- a/accessibility/source/extended/AccessibleToolPanelDeck.cxx +++ /dev/null @@ -1,357 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * This file incorporates work covered by the following license notice: - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed - * with this work for additional information regarding copyright - * ownership. The ASF licenses this file to you under the Apache - * License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.apache.org/licenses/LICENSE-2.0 . - */ - -#include "accessibility/extended/AccessibleToolPanelDeck.hxx" - -#include <com/sun/star/accessibility/AccessibleRole.hpp> -#include <com/sun/star/accessibility/AccessibleEventId.hpp> -#include <com/sun/star/accessibility/AccessibleStateType.hpp> -#include <com/sun/star/lang/DisposedException.hpp> - -#include <svtools/toolpanel/toolpaneldeck.hxx> -#include <toolkit/awt/vclxwindow.hxx> -#include <toolkit/helper/vclunohelper.hxx> -#include <vcl/svapp.hxx> -#include <osl/mutex.hxx> -#include <unotools/accessiblestatesethelper.hxx> -#include <tools/diagnose_ex.h> - -#include <boost/noncopyable.hpp> - - -namespace accessibility -{ - using ::com::sun::star::uno::Reference; - using ::com::sun::star::uno::XInterface; - using ::com::sun::star::uno::UNO_QUERY; - using ::com::sun::star::uno::UNO_QUERY_THROW; - using ::com::sun::star::uno::UNO_SET_THROW; - using ::com::sun::star::uno::Exception; - using ::com::sun::star::uno::RuntimeException; - using ::com::sun::star::uno::Any; - using ::com::sun::star::uno::makeAny; - using ::com::sun::star::uno::Sequence; - using ::com::sun::star::uno::Type; - using ::com::sun::star::accessibility::XAccessible; - using ::com::sun::star::accessibility::XAccessibleContext; - using ::com::sun::star::lang::DisposedException; - using ::com::sun::star::lang::IndexOutOfBoundsException; - using ::com::sun::star::lang::Locale; - using ::com::sun::star::accessibility::XAccessibleRelationSet; - using ::com::sun::star::accessibility::XAccessibleStateSet; - using ::com::sun::star::accessibility::IllegalAccessibleComponentStateException; - using ::com::sun::star::awt::XFont; - - namespace AccessibleRole = ::com::sun::star::accessibility::AccessibleRole; - namespace AccessibleEventId = ::com::sun::star::accessibility::AccessibleEventId; - namespace AccessibleStateType = ::com::sun::star::accessibility::AccessibleStateType; - - // AccessibleToolPanelDeck_Impl - declaration - class AccessibleToolPanelDeck_Impl :public ::boost::noncopyable - ,public ::svt::IToolPanelDeckListener - { - public: - AccessibleToolPanelDeck_Impl( - AccessibleToolPanelDeck& i_rAntiImpl, - const Reference< XAccessible >& i_rAccessibleParent, - ::svt::ToolPanelDeck& i_rPanelDeck - ); - - void checkDisposed(); - bool isDisposed() const { return m_pPanelDeck == nullptr; } - void dispose(); - - virtual ~AccessibleToolPanelDeck_Impl(); - - Reference< XAccessible > getOwnAccessible() const; - Reference< XAccessible > getActivePanelAccessible(); - - protected: - // IToolPanelDeckListener - virtual void PanelInserted( const ::svt::PToolPanel& i_pPanel, const size_t i_nPosition ) override; - virtual void PanelRemoved( const size_t i_nPosition ) override; - virtual void ActivePanelChanged( const ::boost::optional< size_t >& i_rOldActive, const ::boost::optional< size_t >& i_rNewActive ) override; - virtual void LayouterChanged( const ::svt::PDeckLayouter& i_rNewLayouter ) override; - virtual void Dying() override; - - public: - AccessibleToolPanelDeck& m_rAntiImpl; - Reference< XAccessible > m_xAccessibleParent; - VclPtr< ::svt::ToolPanelDeck > m_pPanelDeck; - - Reference< XAccessible > m_xActivePanelAccessible; - }; - - // MethodGuard - namespace - { - class MethodGuard - { - public: - explicit MethodGuard( AccessibleToolPanelDeck_Impl& i_rImpl ) - :m_aGuard() - { - i_rImpl.checkDisposed(); - } - ~MethodGuard() - { - } - - private: - SolarMutexGuard m_aGuard; - }; - } - - // AccessibleToolPanelDeck_Impl - implementation - AccessibleToolPanelDeck_Impl::AccessibleToolPanelDeck_Impl( AccessibleToolPanelDeck& i_rAntiImpl, const Reference< XAccessible >& i_rAccessibleParent, - ::svt::ToolPanelDeck& i_rPanelDeck ) - :m_rAntiImpl( i_rAntiImpl ) - ,m_xAccessibleParent( i_rAccessibleParent ) - ,m_pPanelDeck( &i_rPanelDeck ) - ,m_xActivePanelAccessible() - { - m_pPanelDeck->AddListener( *this ); - } - - AccessibleToolPanelDeck_Impl::~AccessibleToolPanelDeck_Impl() - { - if ( !isDisposed() ) - dispose(); - } - - void AccessibleToolPanelDeck_Impl::dispose() - { - ENSURE_OR_RETURN_VOID( !isDisposed(), "disposed twice" ); - m_pPanelDeck->RemoveListener( *this ); - m_pPanelDeck.clear(); - m_xAccessibleParent.clear(); - } - - void AccessibleToolPanelDeck_Impl::checkDisposed() - { - if ( isDisposed() ) - throw DisposedException( OUString(), *&m_rAntiImpl ); - } - - Reference< XAccessible > AccessibleToolPanelDeck_Impl::getOwnAccessible() const - { - Reference< XAccessible > xOwnAccessible( static_cast< XAccessible* >( m_rAntiImpl.GetVCLXWindow() ) ); - OSL_ENSURE( xOwnAccessible->getAccessibleContext() == Reference< XAccessibleContext >( &m_rAntiImpl ), - "AccessibleToolPanelDeck_Impl::getOwnAccessible: could not retrieve proper XAccessible for /myself!" ); - return xOwnAccessible; - } - - Reference< XAccessible > AccessibleToolPanelDeck_Impl::getActivePanelAccessible() - { - ENSURE_OR_RETURN( !isDisposed(), "AccessibleToolPanelDeck_Impl::getActivePanelAccessible: already disposed!", nullptr ); - - if ( !m_xActivePanelAccessible.is() ) - { - ::boost::optional< size_t > aActivePanel( m_pPanelDeck->GetActivePanel() ); - ENSURE_OR_RETURN( !!aActivePanel, "AccessibleToolPanelDeck_Impl::getActivePanelAccessible: this should not be called without an active panel!", nullptr ); - ::svt::PToolPanel pActivePanel( m_pPanelDeck->GetPanel( *aActivePanel ) ); - ENSURE_OR_RETURN( pActivePanel.get() != nullptr, "AccessibleToolPanelDeck_Impl::getActivePanelAccessible: no active panel!", nullptr ); - m_xActivePanelAccessible = pActivePanel->CreatePanelAccessible( getOwnAccessible() ); - OSL_ENSURE( m_xActivePanelAccessible.is(), "AccessibleToolPanelDeck_Impl::getActivePanelAccessible: illegal accessible returned by the panel!" ); - } - - return m_xActivePanelAccessible; - } - - void AccessibleToolPanelDeck_Impl::PanelInserted( const ::svt::PToolPanel& i_pPanel, const size_t i_nPosition ) - { - (void)i_pPanel; - (void)i_nPosition; - } - - void AccessibleToolPanelDeck_Impl::PanelRemoved( const size_t i_nPosition ) - { - (void)i_nPosition; - } - - void AccessibleToolPanelDeck_Impl::ActivePanelChanged( const ::boost::optional< size_t >& i_rOldActive, const ::boost::optional< size_t >& i_rNewActive ) - { - if ( !!i_rOldActive ) - { - if ( !m_xActivePanelAccessible.is() ) - { - // again, this might in theory happen if the XAccessible for the active panel has never before been requested. - // In this case, just say that all our children are invalid, so they all must be re-requested. - m_rAntiImpl.NotifyAccessibleEvent( AccessibleEventId::INVALIDATE_ALL_CHILDREN, Any(), Any() ); - } - else - { - m_rAntiImpl.NotifyAccessibleEvent( AccessibleEventId::CHILD, makeAny( m_xActivePanelAccessible ), Any() ); - } - } - - m_xActivePanelAccessible.clear(); - - if ( !!i_rNewActive ) - { - m_rAntiImpl.NotifyAccessibleEvent( AccessibleEventId::CHILD, Any(), makeAny( getActivePanelAccessible() ) ); - } - } - - void AccessibleToolPanelDeck_Impl::LayouterChanged( const ::svt::PDeckLayouter& i_rNewLayouter ) - { - MethodGuard aGuard( *this ); - - (void)i_rNewLayouter; - m_rAntiImpl.NotifyAccessibleEvent( AccessibleEventId::INVALIDATE_ALL_CHILDREN, Any(), Any() ); - } - - void AccessibleToolPanelDeck_Impl::Dying() - { - // the tool panel deck is dying, so dispose ourself - m_rAntiImpl.dispose(); - } - - // AccessibleToolPanelDeck - AccessibleToolPanelDeck::AccessibleToolPanelDeck( const Reference< XAccessible >& i_rAccessibleParent, - ::svt::ToolPanelDeck& i_rPanelDeck ) - :VCLXAccessibleComponent( i_rPanelDeck.GetWindowPeer() ) - ,m_xImpl( new AccessibleToolPanelDeck_Impl( *this, i_rAccessibleParent, i_rPanelDeck ) ) - { - } - - AccessibleToolPanelDeck::~AccessibleToolPanelDeck() - { - } - - sal_Int32 SAL_CALL AccessibleToolPanelDeck::getAccessibleChildCount( ) throw (RuntimeException, std::exception) - { - MethodGuard aGuard( *m_xImpl ); - - sal_Int32 nChildCount( m_xImpl->m_pPanelDeck->GetLayouter()->GetAccessibleChildCount() ); - - ::boost::optional< size_t > aActivePanel( m_xImpl->m_pPanelDeck->GetActivePanel() ); - if ( !!aActivePanel ) - return ++nChildCount; - - return nChildCount; - } - - Reference< XAccessible > SAL_CALL AccessibleToolPanelDeck::getAccessibleChild( sal_Int32 i_nIndex ) throw (IndexOutOfBoundsException, RuntimeException, std::exception) - { - MethodGuard aGuard( *m_xImpl ); - - const sal_Int32 nChildCount( getAccessibleChildCount() ); - if ( ( i_nIndex < 0 ) || ( i_nIndex >= nChildCount ) ) - throw IndexOutOfBoundsException( OUString(), *this ); - - // first "n" children are provided by the layouter - const size_t nLayouterCount( m_xImpl->m_pPanelDeck->GetLayouter()->GetAccessibleChildCount() ); - if ( size_t( i_nIndex ) < nLayouterCount ) - return m_xImpl->m_pPanelDeck->GetLayouter()->GetAccessibleChild( - size_t( i_nIndex ), - m_xImpl->getOwnAccessible() - ); - - // the last child is the XAccessible of the active panel - return m_xImpl->getActivePanelAccessible(); - } - - Reference< XAccessible > SAL_CALL AccessibleToolPanelDeck::getAccessibleParent( ) throw (RuntimeException, std::exception) - { - MethodGuard aGuard( *m_xImpl ); - const Reference< XAccessible > xParent = implGetForeignControlledParent(); - if ( xParent.is() ) - return xParent; - return m_xImpl->m_xAccessibleParent; - } - - sal_Int16 SAL_CALL AccessibleToolPanelDeck::getAccessibleRole( ) throw (RuntimeException, std::exception) - { - MethodGuard aGuard( *m_xImpl ); - return AccessibleRole::PANEL; - } - - Reference< XAccessible > SAL_CALL AccessibleToolPanelDeck::getAccessibleAtPoint( const css::awt::Point& i_rPoint ) throw (RuntimeException, std::exception) - { - MethodGuard aGuard( *m_xImpl ); - - const ::Point aRequestedPoint( VCLUnoHelper::ConvertToVCLPoint( i_rPoint ) ); - // check the panel window itself - const vcl::Window& rActivePanelAnchor( m_xImpl->m_pPanelDeck->GetPanelWindowAnchor() ); - const Rectangle aPanelAnchorArea( rActivePanelAnchor.GetPosPixel(), rActivePanelAnchor.GetOutputSizePixel() ); - if ( aPanelAnchorArea.IsInside( aRequestedPoint ) ) - // note that this assumes that the Window which actually implements the concrete panel covers - // the complete area of its "anchor" Window. But this is ensured by the ToolPanelDeck implementation. - return m_xImpl->getActivePanelAccessible(); - - // check the XAccessible instances provided by the layouter - try - { - const ::svt::PDeckLayouter pLayouter( m_xImpl->m_pPanelDeck->GetLayouter() ); - ENSURE_OR_THROW( pLayouter.get() != nullptr, "invalid layouter" ); - - const size_t nLayouterChildren = pLayouter->GetAccessibleChildCount(); - for ( size_t i=0; i<nLayouterChildren; ++i ) - { - const Reference< XAccessible > xLayoutItemAccessible( pLayouter->GetAccessibleChild( i, m_xImpl->getOwnAccessible() ), UNO_SET_THROW ); - const Reference< XAccessibleComponent > xLayoutItemComponent( xLayoutItemAccessible->getAccessibleContext(), UNO_QUERY_THROW ); - const ::Rectangle aLayoutItemBounds( VCLUnoHelper::ConvertToVCLRect( xLayoutItemComponent->getBounds() ) ); - if ( aLayoutItemBounds.IsInside( aRequestedPoint ) ) - return xLayoutItemAccessible; - } - } - catch( const Exception& ) - { - DBG_UNHANDLED_EXCEPTION(); - } - - return nullptr; - } - - void SAL_CALL AccessibleToolPanelDeck::grabFocus( ) throw (RuntimeException, std::exception) - { - MethodGuard aGuard( *m_xImpl ); - m_xImpl->m_pPanelDeck->GrabFocus(); - } - - void SAL_CALL AccessibleToolPanelDeck::disposing() - { - VCLXAccessibleComponent::disposing(); - m_xImpl->dispose(); - } - - Reference< XAccessible > AccessibleToolPanelDeck::GetChildAccessible( const VclWindowEvent& i_rVclWindowEvent ) - { - // don't let the base class generate any A11Y events from VclWindowEvent, we completely manage those - // A11Y events ourself - (void)i_rVclWindowEvent; - return nullptr; - } - - void AccessibleToolPanelDeck::FillAccessibleStateSet( ::utl::AccessibleStateSetHelper& i_rStateSet ) - { - VCLXAccessibleComponent::FillAccessibleStateSet( i_rStateSet ); - if ( m_xImpl->isDisposed() ) - { - i_rStateSet.AddState( AccessibleStateType::DEFUNC ); - } - else - { - i_rStateSet.AddState( AccessibleStateType::FOCUSABLE ); - } - } -} // namespace accessibility - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/accessibility/source/extended/AccessibleToolPanelDeckTabBar.cxx b/accessibility/source/extended/AccessibleToolPanelDeckTabBar.cxx deleted file mode 100644 index a7a1a3b..0000000 --- a/accessibility/source/extended/AccessibleToolPanelDeckTabBar.cxx +++ /dev/null @@ -1,398 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * This file incorporates work covered by the following license notice: - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed - * with this work for additional information regarding copyright - * ownership. The ASF licenses this file to you under the Apache - * License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.apache.org/licenses/LICENSE-2.0 . - */ - -#include "accessibility/extended/AccessibleToolPanelDeckTabBar.hxx" -#include "accessibility/extended/AccessibleToolPanelDeckTabBarItem.hxx" -#include "accessibility/helper/accresmgr.hxx" -#include "accessibility/helper/accessiblestrings.hrc" - -#include <com/sun/star/accessibility/AccessibleRole.hpp> -#include <com/sun/star/accessibility/AccessibleEventId.hpp> -#include <com/sun/star/accessibility/AccessibleStateType.hpp> -#include <com/sun/star/lang/DisposedException.hpp> - -#include <cppuhelper/implbase.hxx> -#include <svtools/toolpanel/toolpaneldeck.hxx> -#include <svtools/toolpanel/paneltabbar.hxx> -#include <unotools/accessiblestatesethelper.hxx> -#include <toolkit/awt/vclxwindow.hxx> -#include <toolkit/helper/vclunohelper.hxx> -#include <vcl/svapp.hxx> -#include <vcl/button.hxx> -#include <osl/mutex.hxx> -#include <tools/diagnose_ex.h> -#include <boost/noncopyable.hpp> - -#include <vector> - -namespace accessibility -{ - using ::com::sun::star::uno::Reference; - using ::com::sun::star::uno::XInterface; - using ::com::sun::star::uno::UNO_QUERY; - using ::com::sun::star::uno::UNO_QUERY_THROW; - using ::com::sun::star::uno::UNO_SET_THROW; - using ::com::sun::star::uno::Exception; - using ::com::sun::star::uno::RuntimeException; - using ::com::sun::star::uno::Any; - using ::com::sun::star::uno::makeAny; - using ::com::sun::star::uno::Sequence; - using ::com::sun::star::uno::Type; - using ::com::sun::star::accessibility::XAccessible; - using ::com::sun::star::lang::DisposedException; - using ::com::sun::star::lang::IndexOutOfBoundsException; - using ::com::sun::star::accessibility::XAccessibleContext; - - namespace AccessibleRole = ::com::sun::star::accessibility::AccessibleRole; - namespace AccessibleEventId = ::com::sun::star::accessibility::AccessibleEventId; - namespace AccessibleStateType = ::com::sun::star::accessibility::AccessibleStateType; - - // AccessibleWrapper - typedef ::cppu::WeakImplHelper< XAccessible > AccessibleWrapper_Base; - class AccessibleWrapper : public AccessibleWrapper_Base - { - public: - explicit AccessibleWrapper( const Reference< XAccessibleContext >& i_rContext ) - :m_xContext( i_rContext ) - { - } - - // XAccessible - virtual Reference< XAccessibleContext > SAL_CALL getAccessibleContext( ) throw (RuntimeException, std::exception) override - { - return m_xContext; - } - - private: - const Reference< XAccessibleContext > m_xContext; - }; - - // AccessibleToolPanelTabBar_Impl - class AccessibleToolPanelTabBar_Impl :public ::boost::noncopyable - ,public ::svt::IToolPanelDeckListener - { - public: - AccessibleToolPanelTabBar_Impl( - AccessibleToolPanelTabBar& i_rAntiImpl, - const Reference< XAccessible >& i_rAccessibleParent, - ::svt::IToolPanelDeck& i_rPanelDeck, - ::svt::PanelTabBar& i_rTabBar - ); - virtual ~AccessibleToolPanelTabBar_Impl(); - - void checkDisposed(); - bool isDisposed() const { return m_pPanelDeck == nullptr; } - void dispose(); - - ::svt::IToolPanelDeck* getPanelDeck() const { return m_pPanelDeck; } - ::svt::PanelTabBar* getTabBar() const { return m_pTabBar; } - const Reference< XAccessible >& getAccessibleParent() const { return m_xAccessibleParent; } - Reference< XAccessible > getAccessiblePanelItem( size_t i_nPosition ); - Reference< XAccessible > getOwnAccessible() const; - - protected: - // IToolPanelDeckListener - virtual void PanelInserted( const ::svt::PToolPanel& i_pPanel, const size_t i_nPosition ) override; - virtual void PanelRemoved( const size_t i_nPosition ) override; - virtual void ActivePanelChanged( const ::boost::optional< size_t >& i_rOldActive, const ::boost::optional< size_t >& i_rNewActive ) override; - virtual void LayouterChanged( const ::svt::PDeckLayouter& i_rNewLayouter ) override; - virtual void Dying() override; - - DECL_LINK_TYPED( OnWindowEvent, VclWindowEvent&, void ); - - private: - AccessibleToolPanelTabBar& m_rAntiImpl; - Reference< XAccessible > m_xAccessibleParent; - ::svt::IToolPanelDeck* m_pPanelDeck; - VclPtr< ::svt::PanelTabBar > m_pTabBar; - ::std::vector< Reference< XAccessible > > m_aChildren; - }; - - AccessibleToolPanelTabBar_Impl::AccessibleToolPanelTabBar_Impl( AccessibleToolPanelTabBar& i_rAntiImpl, - const Reference< XAccessible >& i_rAccessibleParent, ::svt::IToolPanelDeck& i_rPanelDeck, ::svt::PanelTabBar& i_rTabBar ) - :m_rAntiImpl( i_rAntiImpl ) - ,m_xAccessibleParent( i_rAccessibleParent ) - ,m_pPanelDeck( &i_rPanelDeck ) - ,m_pTabBar( &i_rTabBar ) - ,m_aChildren() - { - m_pPanelDeck->AddListener( *this ); - m_aChildren.resize( m_pPanelDeck->GetPanelCount() ); - - const OUString sAccessibleDescription( TK_RES_STRING( RID_STR_ACC_DESC_PANELDECL_TABBAR ) ); - i_rTabBar.SetAccessibleName( sAccessibleDescription ); - i_rTabBar.SetAccessibleDescription( sAccessibleDescription ); - - i_rTabBar.GetScrollButton( true ).AddEventListener( LINK( this, AccessibleToolPanelTabBar_Impl, OnWindowEvent ) ); - i_rTabBar.GetScrollButton( false ).AddEventListener( LINK( this, AccessibleToolPanelTabBar_Impl, OnWindowEvent ) ); - } - - void AccessibleToolPanelTabBar_Impl::checkDisposed() - { - if ( isDisposed() ) - throw DisposedException( OUString(), *&m_rAntiImpl ); - } - - AccessibleToolPanelTabBar_Impl::~AccessibleToolPanelTabBar_Impl() - { - if ( !isDisposed() ) - dispose(); - } - - void AccessibleToolPanelTabBar_Impl::dispose() - { - ENSURE_OR_RETURN_VOID( !isDisposed(), "disposed twice" ); - m_pPanelDeck->RemoveListener( *this ); - m_pPanelDeck = nullptr; - - m_pTabBar->GetScrollButton( true ).RemoveEventListener( LINK( this, AccessibleToolPanelTabBar_Impl, OnWindowEvent ) ); - m_pTabBar->GetScrollButton( false ).RemoveEventListener( LINK( this, AccessibleToolPanelTabBar_Impl, OnWindowEvent ) ); - m_pTabBar.clear(); - - m_xAccessibleParent.clear(); - } - - Reference< XAccessible > AccessibleToolPanelTabBar_Impl::getAccessiblePanelItem( size_t i_nPosition ) - { - ENSURE_OR_RETURN( !isDisposed(), "AccessibleToolPanelTabBar_Impl::getAccessiblePanelItem: already disposed!", nullptr ); - ENSURE_OR_RETURN( i_nPosition < m_aChildren.size(), "AccessibleToolPanelTabBar_Impl::getAccessiblePanelItem: invalid index!", nullptr ); - - Reference< XAccessible >& rAccessibleChild( m_aChildren[ i_nPosition ] ); - if ( !rAccessibleChild.is() ) - { - ::rtl::Reference< AccessibleToolPanelDeckTabBarItem > pAccesibleItemContext( new AccessibleToolPanelDeckTabBarItem( - getOwnAccessible(), *m_pPanelDeck, *m_pTabBar, i_nPosition ) ); - rAccessibleChild.set( new AccessibleWrapper( pAccesibleItemContext.get() ) ); - pAccesibleItemContext->lateInit( rAccessibleChild ); - } - return rAccessibleChild; - } - - Reference< XAccessible > AccessibleToolPanelTabBar_Impl::getOwnAccessible() const - { - Reference< XAccessible > xOwnAccessible( static_cast< XAccessible* >( m_rAntiImpl.GetVCLXWindow() ) ); - OSL_ENSURE( xOwnAccessible->getAccessibleContext() == Reference< XAccessibleContext >( &m_rAntiImpl ), - "AccessibleToolPanelTabBar_Impl::getOwnAccessible: could not retrieve proper XAccessible for /myself!" ); - return xOwnAccessible; - } - - void AccessibleToolPanelTabBar_Impl::PanelInserted( const ::svt::PToolPanel& i_pPanel, const size_t i_nPosition ) - { - ENSURE_OR_RETURN_VOID( i_nPosition <= m_aChildren.size(), "AccessibleToolPanelTabBar_Impl::PanelInserted: illegal position (or invalid cache!)" ); - (void)i_pPanel; - m_aChildren.insert( m_aChildren.begin() + i_nPosition, Reference< XAccessible >() ); - m_rAntiImpl.NotifyAccessibleEvent( AccessibleEventId::CHILD, Any(), makeAny( getAccessiblePanelItem( i_nPosition ) ) ); - } - - void AccessibleToolPanelTabBar_Impl::PanelRemoved( const size_t i_nPosition ) - { - ENSURE_OR_RETURN_VOID( i_nPosition < m_aChildren.size(), "AccessibleToolPanelTabBar_Impl::PanelInserted: illegal position (or invalid cache!)" ); - - const Reference< XAccessible > xOldChild( getAccessiblePanelItem( i_nPosition ) ); - m_aChildren.erase( m_aChildren.begin() + i_nPosition ); - m_rAntiImpl.NotifyAccessibleEvent( AccessibleEventId::CHILD, makeAny( xOldChild ), Any() ); - } - - void AccessibleToolPanelTabBar_Impl::ActivePanelChanged( const ::boost::optional< size_t >& i_rOldActive, const ::boost::optional< size_t >& i_rNewActive ) - { - (void)i_rOldActive; - (void)i_rNewActive; - } - - void AccessibleToolPanelTabBar_Impl::LayouterChanged( const ::svt::PDeckLayouter& i_rNewLayouter ) - { - (void)i_rNewLayouter; - m_rAntiImpl.dispose(); - } - - void AccessibleToolPanelTabBar_Impl::Dying() - { - m_rAntiImpl.dispose(); - } - - IMPL_LINK_TYPED( AccessibleToolPanelTabBar_Impl, OnWindowEvent, VclWindowEvent&, rWindowEvent, void ) - { - ENSURE_OR_RETURN_VOID( !isDisposed(), "AccessibleToolPanelTabBar_Impl::OnWindowEvent: already disposed!" ); - - const bool bForwardButton = ( rWindowEvent.GetWindow() == &m_pTabBar->GetScrollButton( true ) ); - const bool bBackwardButton = ( rWindowEvent.GetWindow() == &m_pTabBar->GetScrollButton( false ) ); - ENSURE_OR_RETURN_VOID( bForwardButton || bBackwardButton, "AccessibleToolPanelTabBar_Impl::OnWindowEvent: where does this come from?" ); - - const bool bShow = ( rWindowEvent.GetId() == VCLEVENT_WINDOW_SHOW ); - const bool bHide = ( rWindowEvent.GetId() == VCLEVENT_WINDOW_HIDE ); - if ( !bShow && !bHide ) - // not interested in events other than visibility changes - return; - - const Reference< XAccessible > xButtonAccessible( m_pTabBar->GetScrollButton( bForwardButton ).GetAccessible() ); - const Any aOldChild( bHide ? xButtonAccessible : Reference< XAccessible >() ); - const Any aNewChild( bShow ? xButtonAccessible : Reference< XAccessible >() ); - m_rAntiImpl.NotifyAccessibleEvent( AccessibleEventId::CHILD, aOldChild, aNewChild ); - } - - // MethodGuard - namespace - { - class MethodGuard - { - public: - explicit MethodGuard( AccessibleToolPanelTabBar_Impl& i_rImpl ) - :m_aGuard() - { - i_rImpl.checkDisposed(); - } - ~MethodGuard() - { - } - - private: - SolarMutexGuard m_aGuard; - }; - } - - // AccessibleToolPanelTabBar - AccessibleToolPanelTabBar::AccessibleToolPanelTabBar( const Reference< XAccessible >& i_rAccessibleParent, - ::svt::IToolPanelDeck& i_rPanelDeck, ::svt::PanelTabBar& i_rTabBar ) - :VCLXAccessibleComponent( i_rTabBar.GetWindowPeer() ) - ,m_xImpl( new AccessibleToolPanelTabBar_Impl( *this, i_rAccessibleParent, i_rPanelDeck, i_rTabBar ) ) - { - } - - AccessibleToolPanelTabBar::~AccessibleToolPanelTabBar() - { - } - - sal_Int32 SAL_CALL AccessibleToolPanelTabBar::getAccessibleChildCount( ) throw (RuntimeException, std::exception) - { - MethodGuard aGuard( *m_xImpl ); - - const bool bHasScrollBack = m_xImpl->getTabBar()->GetScrollButton( false ).IsVisible(); - const bool bHasScrollForward = m_xImpl->getTabBar()->GetScrollButton( true ).IsVisible(); - - return m_xImpl->getPanelDeck()->GetPanelCount() - + ( bHasScrollBack ? 1 : 0 ) - + ( bHasScrollForward ? 1 : 0 ); - } - - Reference< XAccessible > SAL_CALL AccessibleToolPanelTabBar::getAccessibleChild( sal_Int32 i_nIndex ) throw (IndexOutOfBoundsException, RuntimeException, std::exception) - { - MethodGuard aGuard( *m_xImpl ); - - const bool bHasScrollBack = m_xImpl->getTabBar()->GetScrollButton( false ).IsVisible(); - const bool bHasScrollForward = m_xImpl->getTabBar()->GetScrollButton( true ).IsVisible(); - - const bool bScrollBackRequested = ( bHasScrollBack && ( i_nIndex == 0 ) ); - const bool bScrollForwardRequested = ( bHasScrollForward && ( i_nIndex == getAccessibleChildCount() - 1 ) ); - OSL_ENSURE( !( bScrollBackRequested && bScrollForwardRequested ), "AccessibleToolPanelTabBar::getAccessibleChild: ouch!" ); - - if ( bScrollBackRequested || bScrollForwardRequested ) - { - Reference< XAccessible > xScrollButtonAccessible( m_xImpl->getTabBar()->GetScrollButton( bScrollForwardRequested ).GetAccessible() ); - ENSURE_OR_RETURN( xScrollButtonAccessible.is(), "AccessibleToolPanelTabBar::getAccessibleChild: invalid button accessible!", nullptr ); - #if OSL_DEBUG_LEVEL > 0 - Reference< XAccessibleContext > xScrollButtonContext( xScrollButtonAccessible->getAccessibleContext() ); - ENSURE_OR_RETURN( xScrollButtonContext.is(), "AccessibleToolPanelTabBar::getAccessibleChild: invalid button accessible context!", xScrollButtonAccessible ); - OSL_ENSURE( xScrollButtonContext->getAccessibleParent() == m_xImpl->getOwnAccessible(), - "AccessibleToolPanelTabBar::getAccessibleChild: wrong parent at the button's accessible!" ); - #endif - return xScrollButtonAccessible; - } - - return m_xImpl->getAccessiblePanelItem( i_nIndex - ( bHasScrollBack ? 1 : 0 ) ); - } - - Reference< XAccessible > SAL_CALL AccessibleToolPanelTabBar::getAccessibleParent( ) throw (RuntimeException, std::exception) - { - MethodGuard aGuard( *m_xImpl ); - return m_xImpl->getAccessibleParent(); - } - - sal_Int16 SAL_CALL AccessibleToolPanelTabBar::getAccessibleRole( ) throw (RuntimeException, std::exception) - { - MethodGuard aGuard( *m_xImpl ); - return AccessibleRole::PAGE_TAB_LIST; - } - - namespace - { - bool lcl_covers( const vcl::Window& i_rWindow, const ::Point& i_rPoint ) - { - const Rectangle aWindowBounds( i_rWindow.GetWindowExtentsRelative( i_rWindow.GetParent() ) ); - return aWindowBounds.IsInside( i_rPoint ); - } - } - - Reference< XAccessible > SAL_CALL AccessibleToolPanelTabBar::getAccessibleAtPoint( const css::awt::Point& i_rPoint ) throw (RuntimeException, std::exception) - { - MethodGuard aGuard( *m_xImpl ); - - // check the tab items - const css::awt::Point aOwnScreenPos( getLocationOnScreen() ); - const ::Point aRequestedScreenPoint( i_rPoint.X + aOwnScreenPos.X, i_rPoint.Y + aOwnScreenPos.Y ); - - for ( size_t i=0; i<m_xImpl->getPanelDeck()->GetPanelCount(); ++i ) - { - const ::Rectangle aItemScreenRect( m_xImpl->getTabBar()->GetItemScreenRect(i) ); - if ( aItemScreenRect.IsInside( aRequestedScreenPoint ) ) - return m_xImpl->getAccessiblePanelItem(i); - } - - // check the scroll buttons - const ::Point aRequestedClientPoint( VCLUnoHelper::ConvertToVCLPoint( i_rPoint ) ); - - const bool bHasScrollBack = m_xImpl->getTabBar()->GetScrollButton( false ).IsVisible(); - if ( bHasScrollBack && lcl_covers( m_xImpl->getTabBar()->GetScrollButton( false ), aRequestedClientPoint ) ) - return m_xImpl->getTabBar()->GetScrollButton( false ).GetAccessible(); - - const bool bHasScrollForward = m_xImpl->getTabBar()->GetScrollButton( true ).IsVisible(); - if ( bHasScrollForward && lcl_covers( m_xImpl->getTabBar()->GetScrollButton( true ), aRequestedClientPoint ) ) - return m_xImpl->getTabBar()->GetScrollButton( true ).GetAccessible(); - - // no hit - return nullptr; - } - - void SAL_CALL AccessibleToolPanelTabBar::disposing() - { - VCLXAccessibleComponent::disposing(); - m_xImpl->dispose(); - } - - Reference< XAccessible > AccessibleToolPanelTabBar::GetChildAccessible( const VclWindowEvent& i_rVclWindowEvent ) - { - // don't let the base class generate any A11Y events from VclWindowEvent, we completely manage those - // A11Y events ourself - (void)i_rVclWindowEvent; - return nullptr; - } - - void AccessibleToolPanelTabBar::FillAccessibleStateSet( ::utl::AccessibleStateSetHelper& i_rStateSet ) - { - VCLXAccessibleComponent::FillAccessibleStateSet( i_rStateSet ); - i_rStateSet.AddState( AccessibleStateType::FOCUSABLE ); - - ENSURE_OR_RETURN_VOID( !m_xImpl->isDisposed(), "AccessibleToolPanelTabBar::FillAccessibleStateSet: already disposed!" ); - if ( m_xImpl->getTabBar()->IsVertical() ) - i_rStateSet.AddState( AccessibleStateType::VERTICAL ); - else - i_rStateSet.AddState( AccessibleStateType::HORIZONTAL ); - } -} // namespace accessibility - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/accessibility/source/extended/AccessibleToolPanelDeckTabBarItem.cxx b/accessibility/source/extended/AccessibleToolPanelDeckTabBarItem.cxx deleted file mode 100644 index a64e97d..0000000 --- a/accessibility/source/extended/AccessibleToolPanelDeckTabBarItem.cxx +++ /dev/null @@ -1,391 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * This file incorporates work covered by the following license notice: - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed - * with this work for additional information regarding copyright - * ownership. The ASF licenses this file to you under the Apache - * License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.apache.org/licenses/LICENSE-2.0 . - */ - -#include "accessibility/extended/AccessibleToolPanelDeckTabBarItem.hxx" - -#include <com/sun/star/accessibility/AccessibleRole.hpp> -#include <com/sun/star/accessibility/AccessibleStateType.hpp> -#include <com/sun/star/accessibility/AccessibleEventId.hpp> -#include <com/sun/star/lang/DisposedException.hpp> - -#include <svtools/toolpanel/toolpaneldeck.hxx> -#include <svtools/toolpanel/paneltabbar.hxx> -#include <unotools/accessiblestatesethelper.hxx> -#include <unotools/accessiblerelationsethelper.hxx> -#include <toolkit/helper/externallock.hxx> -#include <tools/diagnose_ex.h> -#include <vcl/svapp.hxx> -#include <osl/mutex.hxx> - -namespace accessibility -{ - using ::com::sun::star::uno::Reference; - using ::com::sun::star::uno::XInterface; - using ::com::sun::star::uno::UNO_QUERY; - using ::com::sun::star::uno::UNO_QUERY_THROW; - using ::com::sun::star::uno::UNO_SET_THROW; - using ::com::sun::star::uno::Exception; - using ::com::sun::star::uno::RuntimeException; - using ::com::sun::star::uno::Any; - using ::com::sun::star::uno::makeAny; - using ::com::sun::star::uno::Sequence; - using ::com::sun::star::uno::Type; - using ::com::sun::star::accessibility::XAccessible; - using ::com::sun::star::lang::DisposedException; - using ::com::sun::star::lang::IndexOutOfBoundsException; - using ::com::sun::star::accessibility::XAccessibleRelationSet; - using ::com::sun::star::accessibility::XAccessibleStateSet; - using ::com::sun::star::accessibility::XAccessibleComponent; - using ::com::sun::star::accessibility::XAccessibleExtendedComponent; - using ::com::sun::star::awt::XFont; - - namespace AccessibleRole = ::com::sun::star::accessibility::AccessibleRole; - namespace AccessibleStateType = ::com::sun::star::accessibility::AccessibleStateType; - namespace AccessibleEventId = ::com::sun::star::accessibility::AccessibleEventId; - - // AccessibleToolPanelDeckTabBarItem_Impl - class AccessibleToolPanelDeckTabBarItem_Impl : public ::svt::IToolPanelDeckListener - { - public: - AccessibleToolPanelDeckTabBarItem_Impl( - AccessibleToolPanelDeckTabBarItem& i_rAntiImpl, - const Reference< XAccessible >& i_rAccessibleParent, - ::svt::IToolPanelDeck& i_rPanelDeck, - ::svt::PanelTabBar& i_rTabBar, - const size_t i_nItemPos - ); - virtual ~AccessibleToolPanelDeckTabBarItem_Impl(); - - ::svt::PanelTabBar* getTabBar() const { return m_pTabBar; } - - // IToolPanelDeckListener - virtual void PanelInserted( const ::svt::PToolPanel& i_pPanel, const size_t i_nPosition ) override; - virtual void PanelRemoved( const size_t i_nPosition ) override; - virtual void ActivePanelChanged( const ::boost::optional< size_t >& i_rOldActive, const ::boost::optional< size_t >& i_rNewActive ) override; - virtual void LayouterChanged( const ::svt::PDeckLayouter& i_rNewLayouter ) override; - virtual void Dying() override; - - public: - bool isDisposed() const { return m_pPanelDeck == nullptr; } - void checkDisposed() const; - void dispose(); - - const Reference< XAccessible >& - getAccessibleParent() const { return m_xAccessibleParent; } - size_t getItemPos() const { return m_nItemPos; } - - Reference< XAccessibleComponent > getParentAccessibleComponent() const; - ::svt::IToolPanelDeck* getPanelDeck() const { return m_pPanelDeck; } - OUString getPanelDisplayName(); - - private: - void impl_notifyBoundRectChanges(); - void impl_notifyStateChange( const sal_Int16 i_nLostState, const sal_Int16 i_nGainedState ); - - private: - AccessibleToolPanelDeckTabBarItem& m_rAntiImpl; - Reference< XAccessible > m_xAccessibleParent; - ::svt::IToolPanelDeck* m_pPanelDeck; - VclPtr< ::svt::PanelTabBar > m_pTabBar; - size_t m_nItemPos; - }; - - // AccessibleToolPanelDeckTabBarItem_Impl - AccessibleToolPanelDeckTabBarItem_Impl::AccessibleToolPanelDeckTabBarItem_Impl( AccessibleToolPanelDeckTabBarItem& i_rAntiImpl, - const Reference< XAccessible >& i_rAccessibleParent, ::svt::IToolPanelDeck& i_rPanelDeck, ::svt::PanelTabBar& i_rTabBar, - const size_t i_nItemPos ) - :m_rAntiImpl( i_rAntiImpl ) - ,m_xAccessibleParent( i_rAccessibleParent ) - ,m_pPanelDeck( &i_rPanelDeck ) - ,m_pTabBar( &i_rTabBar ) - ,m_nItemPos( i_nItemPos ) - { - m_pPanelDeck->AddListener( *this ); - } - - AccessibleToolPanelDeckTabBarItem_Impl::~AccessibleToolPanelDeckTabBarItem_Impl() - { - } - - void AccessibleToolPanelDeckTabBarItem_Impl::checkDisposed() const - { - if ( isDisposed() ) - throw DisposedException( OUString(), *&m_rAntiImpl ); - } - - void AccessibleToolPanelDeckTabBarItem_Impl::dispose() - { - ENSURE_OR_RETURN_VOID( !isDisposed(), "AccessibleToolPanelDeckTabBarItem_Impl::dispose: disposed twice!" ); - - m_xAccessibleParent.clear(); - m_pPanelDeck->RemoveListener( *this ); - m_pPanelDeck = nullptr; - m_pTabBar.clear(); - } - - Reference< XAccessibleComponent > AccessibleToolPanelDeckTabBarItem_Impl::getParentAccessibleComponent() const - { - Reference< XAccessible > xAccessibleParent( m_rAntiImpl.getAccessibleParent(), UNO_QUERY_THROW ); - return Reference< XAccessibleComponent >( xAccessibleParent->getAccessibleContext(), UNO_QUERY ); - } - - OUString AccessibleToolPanelDeckTabBarItem_Impl::getPanelDisplayName() - { - const ::svt::PToolPanel pPanel( m_pPanelDeck->GetPanel( getItemPos() ) ); - if ( pPanel.get() == nullptr ) - throw DisposedException(); - return pPanel->GetDisplayName(); - } - - void AccessibleToolPanelDeckTabBarItem_Impl::impl_notifyBoundRectChanges() - { - m_rAntiImpl.NotifyAccessibleEvent( AccessibleEventId::BOUNDRECT_CHANGED, Any(), Any() ); - } - - void AccessibleToolPanelDeckTabBarItem_Impl::impl_notifyStateChange( const sal_Int16 i_nLostState, const sal_Int16 i_nGainedState ) - { - m_rAntiImpl.NotifyAccessibleEvent( AccessibleEventId::STATE_CHANGED, - i_nLostState > -1 ? makeAny( i_nLostState ) : Any(), - i_nGainedState > -1 ? makeAny( i_nGainedState ) : Any() - ); - } - - void AccessibleToolPanelDeckTabBarItem_Impl::PanelInserted( const ::svt::PToolPanel& i_pPanel, const size_t i_nPosition ) - { - (void)i_pPanel; - if ( i_nPosition <= m_nItemPos ) - ++m_nItemPos; - impl_notifyBoundRectChanges(); - } - - void AccessibleToolPanelDeckTabBarItem_Impl::PanelRemoved( const size_t i_nPosition ) - { - if ( i_nPosition == m_nItemPos ) - { - m_rAntiImpl.dispose(); - } - else if ( i_nPosition < m_nItemPos ) - { - --m_nItemPos; - impl_notifyBoundRectChanges(); - } - } - - void AccessibleToolPanelDeckTabBarItem_Impl::ActivePanelChanged( const ::boost::optional< size_t >& i_rOldActive, const ::boost::optional< size_t >& i_rNewActive ) - { - if ( m_nItemPos == i_rOldActive ) - { - impl_notifyStateChange( AccessibleStateType::ACTIVE, -1 ); - impl_notifyStateChange( AccessibleStateType::SELECTED, -1 ); - } - else if ( m_nItemPos == i_rNewActive ) - { - impl_notifyStateChange( -1, AccessibleStateType::ACTIVE ); - impl_notifyStateChange( -1, AccessibleStateType::SELECTED ); - } - } - - void AccessibleToolPanelDeckTabBarItem_Impl::LayouterChanged( const ::svt::PDeckLayouter& i_rNewLayouter ) - { - (void)i_rNewLayouter; - // if the tool panel deck has a new layouter, then the old layouter, and thus all items it was - // responsible for, died. So do we. - dispose(); - } - - void AccessibleToolPanelDeckTabBarItem_Impl::Dying() - { - // if the tool panel deck is dying, then its layouter dies, so should we. - dispose(); - } - - class ItemMethodGuard - { - public: - explicit ItemMethodGuard( AccessibleToolPanelDeckTabBarItem_Impl& i_rImpl ) - :m_aGuard() - { - i_rImpl.checkDisposed(); - } - ~ItemMethodGuard() - { - } - - private: - SolarMutexGuard m_aGuard; - }; - - AccessibleToolPanelDeckTabBarItem::AccessibleToolPanelDeckTabBarItem( const Reference< XAccessible >& i_rAccessibleParent, - ::svt::IToolPanelDeck& i_rPanelDeck, ::svt::PanelTabBar& i_rTabBar, const size_t i_nItemPos ) - : ::comphelper::OAccessibleExtendedComponentHelper( - new VCLExternalSolarLock) - , m_xImpl(new AccessibleToolPanelDeckTabBarItem_Impl(*this, - i_rAccessibleParent, i_rPanelDeck, i_rTabBar, i_nItemPos)) - { - } - - AccessibleToolPanelDeckTabBarItem::~AccessibleToolPanelDeckTabBarItem() - { - } - - sal_Int32 SAL_CALL AccessibleToolPanelDeckTabBarItem::getAccessibleChildCount( ) throw (RuntimeException, std::exception) - { - return 0; - } - - Reference< XAccessible > SAL_CALL AccessibleToolPanelDeckTabBarItem::getAccessibleChild( sal_Int32 i ) throw (IndexOutOfBoundsException, RuntimeException, std::exception) - { - (void)i; - throw IndexOutOfBoundsException( OUString(), *this ); - } - - Reference< XAccessible > SAL_CALL AccessibleToolPanelDeckTabBarItem::getAccessibleParent( ) throw (RuntimeException, std::exception) - { - ItemMethodGuard aGuard( *m_xImpl ); - return m_xImpl->getAccessibleParent(); - } - - sal_Int16 SAL_CALL AccessibleToolPanelDeckTabBarItem::getAccessibleRole( ) throw (RuntimeException, std::exception) - { - return AccessibleRole::PAGE_TAB; - } - - OUString SAL_CALL AccessibleToolPanelDeckTabBarItem::getAccessibleDescription( ) throw (RuntimeException, std::exception) - { - ItemMethodGuard aGuard( *m_xImpl ); - return m_xImpl->getPanelDisplayName(); - } - - OUString SAL_CALL AccessibleToolPanelDeckTabBarItem::getAccessibleName( ) throw (RuntimeException, std::exception) - { - ItemMethodGuard aGuard( *m_xImpl ); - return m_xImpl->getPanelDisplayName(); - } - - Reference< XAccessibleRelationSet > SAL_CALL AccessibleToolPanelDeckTabBarItem::getAccessibleRelationSet( ) throw (RuntimeException, std::exception) - { - ItemMethodGuard aGuard( *m_xImpl ); - ::utl::AccessibleRelationSetHelper* pRelationSet = new utl::AccessibleRelationSetHelper; - return pRelationSet; - } - - Reference< XAccessibleStateSet > SAL_CALL AccessibleToolPanelDeckTabBarItem::getAccessibleStateSet( ) throw (RuntimeException, std::exception) - { - ItemMethodGuard aGuard( *m_xImpl ); - - ::utl::AccessibleStateSetHelper* pStateSet( new ::utl::AccessibleStateSetHelper ); - pStateSet->AddState( AccessibleStateType::FOCUSABLE ); - pStateSet->AddState( AccessibleStateType::SELECTABLE ); - pStateSet->AddState( AccessibleStateType::ICONIFIED ); - - if ( m_xImpl->getItemPos() == m_xImpl->getPanelDeck()->GetActivePanel() ) - { - pStateSet->AddState( AccessibleStateType::ACTIVE ); - pStateSet->AddState( AccessibleStateType::SELECTED ); - } - - if ( m_xImpl->getItemPos() == m_xImpl->getTabBar()->GetFocusedPanelItem() ) - pStateSet->AddState( AccessibleStateType::FOCUSED ); - - if ( m_xImpl->getTabBar()->IsEnabled() ) - pStateSet->AddState( AccessibleStateType::ENABLED ); - - if ( m_xImpl->getTabBar()->IsVisible() ) - { - pStateSet->AddState( AccessibleStateType::SHOWING ); - pStateSet->AddState( AccessibleStateType::VISIBLE ); - } - - return pStateSet; - } - - Reference< XAccessible > SAL_CALL AccessibleToolPanelDeckTabBarItem::getAccessibleAtPoint( const css::awt::Point& i_rLocation ) throw (RuntimeException, std::exception) - { - ItemMethodGuard aGuard( *m_xImpl ); - // we do not have children ... - (void)i_rLocation; - return nullptr; - } - - void SAL_CALL AccessibleToolPanelDeckTabBarItem::grabFocus( ) throw (RuntimeException, std::exception) - { - ItemMethodGuard aGuard( *m_xImpl ); - m_xImpl->getTabBar()->FocusPanelItem( m_xImpl->getItemPos() ); - } - - ::sal_Int32 SAL_CALL AccessibleToolPanelDeckTabBarItem::getForeground( ) throw (RuntimeException, std::exception) - { - ItemMethodGuard aGuard( *m_xImpl ); - Reference< XAccessibleComponent > xParentComponent( m_xImpl->getParentAccessibleComponent(), UNO_SET_THROW ); - return xParentComponent->getForeground(); - } - - ::sal_Int32 SAL_CALL AccessibleToolPanelDeckTabBarItem::getBackground( ) throw (RuntimeException, std::exception) - { - ItemMethodGuard aGuard( *m_xImpl ); - Reference< XAccessibleComponent > xParentComponent( m_xImpl->getParentAccessibleComponent(), UNO_SET_THROW ); - return xParentComponent->getBackground(); - } - - Reference< XFont > SAL_CALL AccessibleToolPanelDeckTabBarItem::getFont( ) throw (RuntimeException, std::exception) - { - ItemMethodGuard aGuard( *m_xImpl ); - Reference< XAccessibleExtendedComponent > xParentComponent( m_xImpl->getParentAccessibleComponent(), UNO_QUERY_THROW ); - // TODO: strictly, this is not correct: The TabBar implementation of the TabLayouter might use - // a different font ... - return xParentComponent->getFont(); - } - - OUString SAL_CALL AccessibleToolPanelDeckTabBarItem::getTitledBorderText( ) throw (RuntimeException, std::exception) - { - ItemMethodGuard aGuard( *m_xImpl ); - // no support - return OUString(); - } - - OUString SAL_CALL AccessibleToolPanelDeckTabBarItem::getToolTipText( ) throw (RuntimeException, std::exception) - { - ItemMethodGuard aGuard( *m_xImpl ); - return m_xImpl->getPanelDisplayName(); - } - - css::awt::Rectangle AccessibleToolPanelDeckTabBarItem::implGetBounds() throw (RuntimeException) - { - ItemMethodGuard aGuard( *m_xImpl ); - - const ::Rectangle aItemScreenRect( m_xImpl->getTabBar()->GetItemScreenRect( m_xImpl->getItemPos() ) ); - - Reference< XAccessibleComponent > xParentComponent( m_xImpl->getParentAccessibleComponent(), UNO_SET_THROW ); - const css::awt::Point aParentLocation( xParentComponent->getLocationOnScreen() ); - return css::awt::Rectangle( - aItemScreenRect.Left() - aParentLocation.X, - aItemScreenRect.Top() - aParentLocation.Y, - aItemScreenRect.GetWidth(), - aItemScreenRect.GetHeight() - ); - } - - void SAL_CALL AccessibleToolPanelDeckTabBarItem::disposing() - { - ItemMethodGuard aGuard( *m_xImpl ); - m_xImpl->dispose(); - } -} // namespace accessibility - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/accessibility/source/helper/acc_factory.cxx b/accessibility/source/helper/acc_factory.cxx index 450096a..45587c9 100644 --- a/accessibility/source/helper/acc_factory.cxx +++ b/accessibility/source/helper/acc_factory.cxx @@ -53,9 +53,6 @@ #include <accessibility/extended/AccessibleBrowseBoxHeaderCell.hxx> #include <accessibility/extended/AccessibleBrowseBoxCheckBoxCell.hxx> #include <accessibility/extended/accessibleeditbrowseboxcell.hxx> -#include <accessibility/extended/AccessibleToolPanelDeck.hxx> -#include <accessibility/extended/AccessibleToolPanelDeckTabBar.hxx> -#include <accessibility/extended/AccessibleToolPanelDeckTabBarItem.hxx> #include <vcl/lstbox.hxx> #include <vcl/combobox.hxx> #include <accessibility/extended/AccessibleGridControl.hxx> @@ -203,18 +200,6 @@ public: sal_uInt16 _nColPos ) const override; - virtual css::uno::Reference< css::accessibility::XAccessibleContext > - createAccessibleToolPanelDeck( - const css::uno::Reference< css::accessibility::XAccessible >& i_rAccessibleParent, - ::svt::ToolPanelDeck& i_rPanelDeck - ) override; - virtual css::uno::Reference< css::accessibility::XAccessibleContext > - createAccessibleToolPanelTabBar( - const css::uno::Reference< css::accessibility::XAccessible >& i_rAccessibleParent, - ::svt::IToolPanelDeck& i_rPanelDeck, - ::svt::PanelTabBar& i_rTabBar - ) override; - protected: virtual ~AccessibleFactory(); }; @@ -458,18 +443,6 @@ Reference< XAccessible > AccessibleFactory::createEditBrowseBoxTableCellAccess( _rxFocusWindow, _rBrowseBox, _nRowPos, _nColPos ); } -Reference< XAccessibleContext > AccessibleFactory::createAccessibleToolPanelDeck( - const Reference< XAccessible >& i_rAccessibleParent, ::svt::ToolPanelDeck& i_rPanelDeck ) -{ - return new AccessibleToolPanelDeck( i_rAccessibleParent, i_rPanelDeck ); -} - -Reference< XAccessibleContext > AccessibleFactory::createAccessibleToolPanelTabBar( - const Reference< XAccessible >& i_rAccessibleParent, ::svt::IToolPanelDeck& i_rPanelDeck, ::svt::PanelTabBar& i_rTabBar ) -{ - return new AccessibleToolPanelTabBar( i_rAccessibleParent, i_rPanelDeck, i_rTabBar ); -} - } // anonymous namespace #if HAVE_FEATURE_DESKTOP diff --git a/framework/source/fwe/classes/sfxhelperfunctions.cxx b/framework/source/fwe/classes/sfxhelperfunctions.cxx index 6ec7463..4926874 100644 --- a/framework/source/fwe/classes/sfxhelperfunctions.cxx +++ b/framework/source/fwe/classes/sfxhelperfunctions.cxx @@ -28,7 +28,6 @@ static pfunc_setStatusBarControllerCreator pStatusBarControllerCreator = nullptr static pfunc_getRefreshToolbars pRefreshToolbars = nullptr; static pfunc_createDockingWindow pCreateDockingWindow = nullptr; static pfunc_isDockingWindowVisible pIsDockingWindowVisible = nullptr; -static pfunc_activateToolPanel pActivateToolPanel = nullptr; using namespace ::com::sun::star::uno; using namespace ::com::sun::star::frame; @@ -145,26 +144,6 @@ bool SAL_CALL IsDockingWindowVisible( const css::uno::Reference< css::frame::XFr return false; } -pfunc_activateToolPanel SAL_CALL SetActivateToolPanel( pfunc_activateToolPanel i_pActivator ) -{ - ::osl::MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() ); - pfunc_activateToolPanel pOldFunc = pActivateToolPanel; - pActivateToolPanel = i_pActivator; - return pOldFunc; -} - -void SAL_CALL ActivateToolPanel( const css::uno::Reference< css::frame::XFrame >& i_rFrame, const OUString& i_rPanelURL ) -{ - pfunc_activateToolPanel pActivator = nullptr; - { - ::osl::MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() ); - pActivator = pActivateToolPanel; - } - - ENSURE_OR_RETURN_VOID( pActivator, "framework::ActivateToolPanel: no activator function!" ); - (*pActivator)( i_rFrame, i_rPanelURL ); -} - using namespace ::com::sun::star; uno::Reference<ui::XContextChangeEventListener> GetFirstListenerWith( uno::Reference<uno::XInterface> const& xEventFocus, diff --git a/framework/source/layoutmanager/layoutmanager.cxx b/framework/source/layoutmanager/layoutmanager.cxx index 1c15c9f..36a2d54 100644 --- a/framework/source/layoutmanager/layoutmanager.cxx +++ b/framework/source/layoutmanager/layoutmanager.cxx @@ -1819,13 +1819,6 @@ throw (RuntimeException, std::exception) impl_setDockingWindowVisibility( xContext, xFrame, aElementName, true ); } - else if ( aElementType.equalsIgnoreAsciiCase("toolpanel")) - { - SolarMutexClearableGuard aReadGuard; - uno::Reference< frame::XFrame > xFrame( m_xFrame ); - aReadGuard.clear(); - ActivateToolPanel( m_xFrame, aName ); - } if ( bMustLayout ) doLayout(); diff --git a/include/framework/sfxhelperfunctions.hxx b/include/framework/sfxhelperfunctions.hxx index e88e170..5c39b12 100644 --- a/include/framework/sfxhelperfunctions.hxx +++ b/include/framework/sfxhelperfunctions.hxx @@ -51,10 +51,6 @@ typedef bool ( *pfunc_isDockingWindowVisible)( const css::uno::Reference< css::frame::XFrame >& rFrame, const OUString& rResourceURL ); -typedef void ( *pfunc_activateToolPanel)( - const css::uno::Reference< css::frame::XFrame >& i_rFrame, - const OUString& i_rPanelURL ); - namespace framework { @@ -85,11 +81,6 @@ FWE_DLLPUBLIC pfunc_isDockingWindowVisible SAL_CALL SetIsDockingWindowVisible( p FWE_DLLPUBLIC bool SAL_CALL IsDockingWindowVisible( const css::uno::Reference< css::frame::XFrame >& rFrame, const OUString& rResourceURL ); - -FWE_DLLPUBLIC pfunc_activateToolPanel SAL_CALL SetActivateToolPanel( pfunc_activateToolPanel i_pActivator ); -FWE_DLLPUBLIC void SAL_CALL ActivateToolPanel( - const css::uno::Reference< css::frame::XFrame >& i_rFrame, - const OUString& i_rPanelURL ); } #endif // INCLUDED_FRAMEWORK_SFXHELPERFUNCTIONS_HXX diff --git a/include/sfx2/module.hxx b/include/sfx2/module.hxx index 824a9c8..9d8e8a1 100644 --- a/include/sfx2/module.hxx +++ b/include/sfx2/module.hxx @@ -87,8 +87,6 @@ public: const SfxItemSet& rSet ); virtual void Invalidate(sal_uInt16 nId = 0) override; - bool IsChildWindowAvailable( const sal_uInt16 i_nId, const SfxViewFrame* i_pViewFrame ) const; - static SfxModule* GetActiveModule( SfxViewFrame* pFrame=nullptr ); static FieldUnit GetCurrentFieldUnit(); /** retrieves the field unit of the module belonging to the document displayed in the given frame diff --git a/include/sfx2/sfxsids.hrc b/include/sfx2/sfxsids.hrc index 081b69c..e288708 100644 --- a/include/sfx2/sfxsids.hrc +++ b/include/sfx2/sfxsids.hrc @@ -574,7 +574,6 @@ #define SID_HYPERLINK_SETLINK (SID_SVX_START + 362) #define SID_INFOBAR (SID_SVX_START + 365) #define SID_NAVIGATOR (SID_SVX_START + 366) -#define SID_TASKPANE (SID_SVX_START + 370) #define SID_ZOOM_NEXT (SID_SVX_START + 402) #define SID_ZOOM_PREV (SID_SVX_START + 403) #define SID_INET_DLG (SID_SVX_START + 416) diff --git a/include/sfx2/taskpane.hxx b/include/sfx2/taskpane.hxx deleted file mode 100644 index 31b5e6e..0000000 --- a/include/sfx2/taskpane.hxx +++ /dev/null @@ -1,190 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * This file incorporates work covered by the following license notice: - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed - * with this work for additional information regarding copyright - * ownership. The ASF licenses this file to you under the Apache - * License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.apache.org/licenses/LICENSE-2.0 . - */ - -#ifndef INCLUDED_SFX2_TASKPANE_HXX -#define INCLUDED_SFX2_TASKPANE_HXX - -#include <sfx2/dllapi.h> -#include <sfx2/childwin.hxx> -#include <sfx2/titledockwin.hxx> - -#include <svtools/toolpanel/tabalignment.hxx> -#include <svtools/toolpanel/tabitemcontent.hxx> - -#include <boost/optional.hpp> - -namespace svt -{ - class ToolPanelDeck; -} - - -namespace sfx2 -{ - - - - //= ITaskPaneToolPanelAccess - - class SAL_NO_VTABLE ITaskPaneToolPanelAccess - { - public: - virtual void ActivateToolPanel( const OUString& i_rPanelURL ) = 0; - - protected: - ~ITaskPaneToolPanelAccess() {} - }; - - - //= TaskPaneWrapper - - class SFX2_DLLPUBLIC TaskPaneWrapper :public SfxChildWindow - ,public ITaskPaneToolPanelAccess - { - public: - TaskPaneWrapper( - vcl::Window* i_pParent, - sal_uInt16 i_nId, - SfxBindings* i_pBindings, - SfxChildWinInfo* i_pInfo - ); - - SFX_DECL_CHILDWINDOW( TaskPaneWrapper ); - - // ITaskPaneToolPanelAccess - virtual void ActivateToolPanel( const OUString& i_rPanelURL ) override; - }; - - - //= ModuleTaskPane - - class ModuleTaskPane_Impl; - /** SFX-less version of a module dependent task pane, filled with tool panels as specified in the respective - module's configuration - */ - class SFX2_DLLPUBLIC ModuleTaskPane : public vcl::Window - { - public: - /** creates a new instance - @param i_rParentWindow - the parent window - @param i_rDocumentFrame - the frame to which the task pane belongs. Will be passed to any custom tool panels created - via an XUIElementFactory. Also, it is used to determine the module which the task pane is - responsible for, thus controlling which tool panels are actually available. - */ - ModuleTaskPane( - vcl::Window& i_rParentWindow, - const css::uno::Reference< css::frame::XFrame >& i_rDocumentFrame - ); - virtual ~ModuleTaskPane(); - - /** determines whether a given module has any registered tool panels - */ - static bool ModuleHasToolPanels( const css::uno::Reference< css::frame::XFrame >& i_rDocumentFrame ); - - /** provides access to the Window aspect of the PanelDeck - - Be careful with this method. For instance, you're not allowed to insert arbitrary IToolPanel implementations - into the deck, as the ModuleTaskPane has certain assumptions about the panel implementations. However, - you're allowed to remove and re-insert panels, which have originally been created by the ModuleTaskPane - itself. - */ - ::svt::ToolPanelDeck& GetPanelDeck(); - const ::svt::ToolPanelDeck& GetPanelDeck() const; - - /** returns the position of the panel with the given resource URL - */ - ::boost::optional< size_t > - GetPanelPos( const OUString& i_rResourceURL ); - - /// sets the "classical" layout of the tool panel deck, using drawers - void SetDrawersLayout(); - /// sets the new layout of the tool panel deck, using tabs - void SetTabsLayout( const ::svt::TabAlignment i_eTabAlignment, const ::svt::TabItemContent i_eTabContent ); - - protected: - // Window overridables - virtual void Resize() override; - virtual void GetFocus() override; - - private: - std::unique_ptr<ModuleTaskPane_Impl> m_xImpl; - }; - - - //= TaskPaneController - - class TaskPaneController_Impl; - /** is a helper class for connecting a ModuleTaskPane and a TitledDockingWindow, for clients of the ModuleTaskPane - which do not use the TaskPaneDockingWindow - - The controller will add a drop down menu to the docking window which contains one item for each panel in the - panel deck, and allows toggling their visibility. - */ - class SFX2_DLLPUBLIC TaskPaneController - { - public: - TaskPaneController( - ModuleTaskPane& i_rTaskPane, - TitledDockingWindow& i_rDockingWindow - ); - ~TaskPaneController(); - - /// activates the panel with the given URL - void ActivateToolPanel( const OUString& i_rPanelURL ); - - private: - std::unique_ptr<TaskPaneController_Impl> m_xImpl; - }; - - - //= TaskPaneDockingWindow - - class TaskPaneDockingWindow :public TitledDockingWindow - ,public ITaskPaneToolPanelAccess - { - public: - TaskPaneDockingWindow( SfxBindings* i_pBindings, TaskPaneWrapper& i_rWrapper, - vcl::Window* i_pParent, WinBits i_nBits ); - virtual ~TaskPaneDockingWindow(); - virtual void dispose() override; - - // ITaskPaneToolPanelAccess - virtual void ActivateToolPanel( const OUString& i_rPanelURL ) override; - - protected: - // Window overridables - virtual void GetFocus() override; - - // TitledDockingWindow overridables - virtual void onLayoutDone() override; - - private: - VclPtr<ModuleTaskPane> m_aTaskPane; - TaskPaneController m_aPaneController; - }; - - -} // namespace sfx2 - - -#endif // INCLUDED_SFX2_TASKPANE_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/include/sfx2/viewfrm.hxx b/include/sfx2/viewfrm.hxx index b2bb823..5134da2 100644 --- a/include/sfx2/viewfrm.hxx +++ b/include/sfx2/viewfrm.hxx @@ -140,8 +140,6 @@ public: void UpdateTitle(); - static void ActivateToolPanel( const css::uno::Reference< css::frame::XFrame >& i_rFrame, const OUString& i_rPanelURL ); - // interne Handler SAL_DLLPRIVATE bool SetBorderPixelImpl( const SfxViewShell *pSh, const SvBorder &rBorder ); SAL_DLLPRIVATE const SvBorder& GetBorderPixelImpl( const SfxViewShell *pSh ) const; @@ -217,7 +215,6 @@ public: SAL_DLLPRIVATE void INetState_Impl(SfxItemSet &); SAL_DLLPRIVATE void SetCurViewId_Impl( const sal_uInt16 i_nID ); - SAL_DLLPRIVATE void ActivateToolPanel_Impl( const OUString& i_rPanelURL ); private: SAL_DLLPRIVATE bool SwitchToViewShell_Impl( sal_uInt16 nNo, bool bIsIndex = false ); diff --git a/include/svtools/accessiblefactory.hxx b/include/svtools/accessiblefactory.hxx index 6327c973..7898426 100644 --- a/include/svtools/accessiblefactory.hxx +++ b/include/svtools/accessiblefactory.hxx @@ -50,8 +50,6 @@ namespace svt { - class ToolPanelDeck; - class IToolPanelDeck; class PanelTabBar; namespace table { @@ -160,18 +158,6 @@ namespace svt sal_uInt16 _nColPos ) const = 0; - virtual css::uno::Reference< css::accessibility::XAccessibleContext > - createAccessibleToolPanelDeck( - const css::uno::Reference< css::accessibility::XAccessible >& i_rAccessibleParent, - ::svt::ToolPanelDeck& i_rPanelDeck - ) = 0; - virtual css::uno::Reference< css::accessibility::XAccessibleContext > - createAccessibleToolPanelTabBar( - const css::uno::Reference< css::accessibility::XAccessible >& i_rAccessibleParent, - ::svt::IToolPanelDeck& i_rPanelDeck, - ::svt::PanelTabBar& i_rTabBar - ) = 0; - protected: virtual ~IAccessibleFactory() {} }; diff --git a/include/svtools/svtools.hrc b/include/svtools/svtools.hrc index 570809b..f04fb3e 100644 --- a/include/svtools/svtools.hrc +++ b/include/svtools/svtools.hrc @@ -161,8 +161,7 @@ // String-Ids for accessibility #define STR_SVT_ACC_BEGIN (STR_SVT_COLLATE_END+1) -#define STR_SVT_TOOL_PANEL_BUTTON_FWD (STR_SVT_ACC_BEGIN+0) -#define STR_SVT_TOOL_PANEL_BUTTON_BACK (STR_SVT_ACC_BEGIN+1) +// free #define STR_SVT_ACC_DESC_TABLISTBOX (STR_SVT_ACC_BEGIN+2) #define STR_SVT_ACC_DESC_FILEVIEW (STR_SVT_ACC_BEGIN+3) #define STR_SVT_ACC_DESC_FOLDER (STR_SVT_ACC_BEGIN+4) @@ -259,9 +258,6 @@ #define RID_IMG_TREENODE_COLLAPSED (RID_SVTOOLS_START + 0) #define RID_IMG_TREENODE_EXPANDED (RID_SVTOOLS_START + 1) -#define IMG_TRIANGLE_RIGHT (RID_SVTOOLS_START + 18) -#define IMG_TRIANGLE_DOWN (RID_SVTOOLS_START + 20) - #define IMG_SVT_FOLDER (RID_SVTOOLS_START + 42) #define IMG_SVT_FOLDER_OPEN (RID_SVTOOLS_START + 43) diff --git a/include/svtools/toolpanel/decklayouter.hxx b/include/svtools/toolpanel/decklayouter.hxx deleted file mode 100644 index 04de02c..0000000 --- a/include/svtools/toolpanel/decklayouter.hxx +++ /dev/null @@ -1,100 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * This file incorporates work covered by the following license notice: - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed - * with this work for additional information regarding copyright - * ownership. The ASF licenses this file to you under the Apache - * License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.apache.org/licenses/LICENSE-2.0 . - */ - -#ifndef INCLUDED_SVTOOLS_TOOLPANEL_DECKLAYOUTER_HXX -#define INCLUDED_SVTOOLS_TOOLPANEL_DECKLAYOUTER_HXX - -#include <com/sun/star/uno/Reference.hxx> - -#include <rtl/ref.hxx> -#include <salhelper/simplereferenceobject.hxx> - -#include <boost/optional.hpp> - -namespace com { namespace sun { namespace star { namespace accessibility { - class XAccessible; -} } } } -class Rectangle; -class Point; - - -namespace svt -{ - - - - //= IDeckLayouter - - class IDeckLayouter : public salhelper::SimpleReferenceObject - { - public: - /** re-arranges the elements of the tool deck, taking into account the - available space for the complete deck. - - @param i_rDeckPlayground - the playground for the complete tool panel deck - @return - the content area for a single tool panel - */ - virtual ::Rectangle Layout( const ::Rectangle& i_rDeckPlayground ) = 0; - - /** destroys the instance - - Since the layouter is ref-counted, but might keep references to non-ref-counted objects - (in particular, the ToolPanelDeck, which is a VCL-Window, and thus cannot be ref-counted), - Destroy is the definitive way to dispose the instance. Technically, it's still alive afterwards, - but non-functional. - */ - virtual void Destroy() = 0; - - /** assuming that a layouter needs to provide some kind of panel selector control, this method - requests to set the focus to this control. - */ - virtual void SetFocusToPanelSelector() = 0; - - /** returns the number of components in the XAccessible hierarchy which are needed to represent all elements - the layouter is responsible form. - - Note that the implementation must guarantee that the count is fixed over the life time of the layouter. - */ - virtual size_t GetAccessibleChildCount() const = 0; - - /** retrieves the XAccessible implementation for the <code>i_nChildIndex</code>'th child in the XAccessible - hierarchy. - */ - virtual css::uno::Reference< css::accessibility::XAccessible > - GetAccessibleChild( - const size_t i_nChildIndex, - const css::uno::Reference< css::accessibility::XAccessible >& i_rParentAccessible - ) = 0; - - virtual ~IDeckLayouter() - { - } - }; - - typedef ::rtl::Reference< IDeckLayouter > PDeckLayouter; - - -} // namespace svt - - -#endif // INCLUDED_SVTOOLS_TOOLPANEL_DECKLAYOUTER_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/include/svtools/toolpanel/drawerlayouter.hxx b/include/svtools/toolpanel/drawerlayouter.hxx deleted file mode 100644 index 0e123be..0000000 --- a/include/svtools/toolpanel/drawerlayouter.hxx +++ /dev/null @@ -1,88 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * This file incorporates work covered by the following license notice: - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed - * with this work for additional information regarding copyright - * ownership. The ASF licenses this file to you under the Apache - * License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.apache.org/licenses/LICENSE-2.0 . - */ - -#ifndef INCLUDED_SVTOOLS_TOOLPANEL_DRAWERLAYOUTER_HXX -#define INCLUDED_SVTOOLS_TOOLPANEL_DRAWERLAYOUTER_HXX - -#include <svtools/svtdllapi.h> -#include <svtools/toolpanel/toolpaneldeck.hxx> -#include <svtools/toolpanel/decklayouter.hxx> - -#include <memory> - - -namespace svt -{ - class ToolPanelViewShell; - class ToolPanelDrawer; - - //= ToolPanelDrawer - - /** a class which implements a tool panel selector in the form of the classical drawers - */ - class SVT_DLLPUBLIC DrawerDeckLayouter :public IDeckLayouter - ,public IToolPanelDeckListener - { - public: - DrawerDeckLayouter( - vcl::Window& i_rParentWindow, - IToolPanelDeck& i_rPanels - ); - virtual ~DrawerDeckLayouter(); - - // IDeckLayouter - virtual Rectangle Layout( const Rectangle& i_rDeckPlayground ) override; - virtual void Destroy() override; - virtual void SetFocusToPanelSelector() override; - virtual size_t GetAccessibleChildCount() const override; - virtual css::uno::Reference< css::accessibility::XAccessible > - GetAccessibleChild( - const size_t i_nChildIndex, - const css::uno::Reference< css::accessibility::XAccessible >& i_rParentAccessible - ) override; - - // IToolPanelDeckListener - virtual void PanelInserted( const PToolPanel& i_pPanel, const size_t i_nPosition ) override; - virtual void PanelRemoved( const size_t i_nPosition ) override; - virtual void ActivePanelChanged( const ::boost::optional< size_t >& i_rOldActive, const ::boost::optional< size_t >& i_rNewActive ) override; - virtual void LayouterChanged( const PDeckLayouter& i_rNewLayouter ) override; - virtual void Dying() override; - - private: - // triggers a re-arrange of the panel deck elements - void impl_triggerRearrange() const; - size_t impl_getPanelPositionFromWindow( const vcl::Window* i_pDrawerWindow ) const; - void impl_removeDrawer( const size_t i_nPosition ); - - DECL_LINK_TYPED( OnWindowEvent, VclWindowEvent&, void ); - -private: - vcl::Window& m_rParentWindow; - IToolPanelDeck& m_rPanelDeck; - ::std::vector< VclPtr<ToolPanelDrawer> > m_aDrawers; - ::boost::optional< size_t > m_aLastKnownActivePanel; - }; - - -} // namespace svt - - -#endif // INCLUDED_SVTOOLS_TOOLPANEL_DRAWERLAYOUTER_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/include/svtools/toolpanel/paneltabbar.hxx b/include/svtools/toolpanel/paneltabbar.hxx deleted file mode 100644 index 84f8a0c..0000000 --- a/include/svtools/toolpanel/paneltabbar.hxx +++ /dev/null @@ -1,97 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * This file incorporates work covered by the following license notice: - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed - * with this work for additional information regarding copyright - * ownership. The ASF licenses this file to you under the Apache - * License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.apache.org/licenses/LICENSE-2.0 . - */ - -#ifndef INCLUDED_SVTOOLS_TOOLPANEL_PANELTABBAR_HXX -#define INCLUDED_SVTOOLS_TOOLPANEL_PANELTABBAR_HXX - -#include <svtools/svtdllapi.h> -#include <svtools/toolpanel/tabalignment.hxx> -#include <svtools/toolpanel/tabitemcontent.hxx> - -#include <vcl/ctrl.hxx> - -#include <memory> -#include <boost/optional.hpp> - -class PushButton; - - -namespace svt -{ - - - class PanelTabBar_Impl; - class IToolPanelDeck; - - - //= PanelTabBar - - /** a tab bar for selecting panels - - At the moment, this control aligns the tabs vertically, this might be extended to also support a horizontal - layout in the future. - */ - class SVT_DLLPUBLIC PanelTabBar : public Control - { - public: - PanelTabBar( vcl::Window& i_rParentWindow, IToolPanelDeck& i_rPanelDeck, const TabAlignment i_eAlignment, const TabItemContent i_eItemContent ); - virtual ~PanelTabBar(); - virtual void dispose() override; - - // attribute access - TabItemContent GetTabItemContent() const; - void SetTabItemContent( const TabItemContent& i_eItemContent ); - - ::boost::optional< size_t > GetFocusedPanelItem() const; - void FocusPanelItem( const size_t i_nItemPos ); - Rectangle GetItemScreenRect( const size_t i_nItemPos ) const; - bool IsVertical() const; - IToolPanelDeck& GetPanelDeck() const; - PushButton& GetScrollButton( const bool i_bForward ); - - // Window overridables - virtual Size GetOptimalSize() const override; - - protected: - // Window overridables - virtual void Paint( vcl::RenderContext& rRenderContext, const Rectangle& i_rRect ) override; - virtual void Resize() override; - virtual void MouseMove( const MouseEvent& i_rMouseEvent ) override; - virtual void MouseButtonDown( const MouseEvent& i_rMouseEvent ) override; - virtual void MouseButtonUp( const MouseEvent& i_rMouseEvent ) override; - virtual void RequestHelp( const HelpEvent& i_rHelpEvent ) override; - virtual void GetFocus() override; - virtual void LoseFocus() override; - virtual void KeyInput( const KeyEvent& i_rKeyEvent ) override; - virtual void DataChanged( const DataChangedEvent& i_rDataChanedEvent ) override; - - virtual css::uno::Reference< css::awt::XWindowPeer > - GetComponentInterface( bool i_bCreate ) override; - - private: - ::std::unique_ptr< PanelTabBar_Impl > m_pImpl; - }; - - -} // namespace svt - - -#endif // INCLUDED_SVTOOLS_TOOLPANEL_PANELTABBAR_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/include/svtools/toolpanel/tabalignment.hxx b/include/svtools/toolpanel/tabalignment.hxx deleted file mode 100644 index e75ffb8..0000000 --- a/include/svtools/toolpanel/tabalignment.hxx +++ /dev/null @@ -1,42 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * This file incorporates work covered by the following license notice: - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed - * with this work for additional information regarding copyright - * ownership. The ASF licenses this file to you under the Apache - * License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.apache.org/licenses/LICENSE-2.0 . - */ - -#ifndef INCLUDED_SVTOOLS_TOOLPANEL_TABALIGNMENT_HXX -#define INCLUDED_SVTOOLS_TOOLPANEL_TABALIGNMENT_HXX - - -namespace svt -{ - - - enum TabAlignment - { - TABS_LEFT, - TABS_RIGHT, - TABS_TOP, - TABS_BOTTOM - }; - - -} // namespace svt - - -#endif // INCLUDED_SVTOOLS_TOOLPANEL_TABALIGNMENT_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/include/svtools/toolpanel/tabitemcontent.hxx b/include/svtools/toolpanel/tabitemcontent.hxx deleted file mode 100644 index 5198cdd..0000000 --- a/include/svtools/toolpanel/tabitemcontent.hxx +++ /dev/null @@ -1,43 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * This file incorporates work covered by the following license notice: - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed - * with this work for additional information regarding copyright - * ownership. The ASF licenses this file to you under the Apache - * License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.apache.org/licenses/LICENSE-2.0 . - */ - -#ifndef INCLUDED_SVTOOLS_TOOLPANEL_TABITEMCONTENT_HXX -#define INCLUDED_SVTOOLS_TOOLPANEL_TABITEMCONTENT_HXX - - -namespace svt -{ - - - enum TabItemContent - { - TABITEM_IMAGE_AND_TEXT, - TABITEM_IMAGE_ONLY, - TABITEM_TEXT_ONLY, - - TABITEM_AUTO - }; - - -} // namespace svt - - -#endif // INCLUDED_SVTOOLS_TOOLPANEL_TABITEMCONTENT_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/include/svtools/toolpanel/tablayouter.hxx b/include/svtools/toolpanel/tablayouter.hxx deleted file mode 100644 index 6bcb4a3..0000000 --- a/include/svtools/toolpanel/tablayouter.hxx +++ /dev/null @@ -1,94 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * This file incorporates work covered by the following license notice: - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed - * with this work for additional information regarding copyright - * ownership. The ASF licenses this file to you under the Apache - * License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.apache.org/licenses/LICENSE-2.0 . - */ - -#ifndef INCLUDED_SVTOOLS_TOOLPANEL_TABLAYOUTER_HXX -#define INCLUDED_SVTOOLS_TOOLPANEL_TABLAYOUTER_HXX - -#include <svtools/svtdllapi.h> -#include <svtools/toolpanel/decklayouter.hxx> -#include <svtools/toolpanel/tabalignment.hxx> -#include <svtools/toolpanel/tabitemcontent.hxx> -#include <salhelper/simplereferenceobject.hxx> - -#include <memory> - -namespace vcl { class Window; } - - -namespace svt -{ - - - class IToolPanelDeck; - - struct TabDeckLayouter_Data; - - - //= TabDeckLayouter - - class SVT_DLLPUBLIC TabDeckLayouter :public IDeckLayouter - { - TabDeckLayouter(const TabDeckLayouter&) = delete; - TabDeckLayouter& operator=( const TabDeckLayouter& ) = delete; - public: - /** creates a new layouter - @param i_rParent - is the parent window for any VCL windows the layouter needs to create. - @param i_rPanels - is the panel deck which the layouter is responsible for. - @param i_eAlignment - specifies the alignment of the panel selector - @param TabItemContent - specifies the content to show on the tab items - */ - TabDeckLayouter( - vcl::Window& i_rParent, - IToolPanelDeck& i_rPanels, - const TabAlignment i_eAlignment, - const TabItemContent i_eItemContent - ); - virtual ~TabDeckLayouter(); - - // attribute access - TabItemContent GetTabItemContent() const; - void SetTabItemContent( const TabItemContent& i_eItemContent ); - TabAlignment GetTabAlignment() const; - - // IDeckLayouter - virtual Rectangle Layout( const Rectangle& i_rDeckPlayground ) override; - virtual void Destroy() override; - virtual void SetFocusToPanelSelector() override; - virtual size_t GetAccessibleChildCount() const override; - virtual css::uno::Reference< css::accessibility::XAccessible > - GetAccessibleChild( - const size_t i_nChildIndex, - const css::uno::Reference< css::accessibility::XAccessible >& i_rParentAccessible - ) override; - - private: - ::std::unique_ptr< TabDeckLayouter_Data > m_pData; - }; - - -} // namespace svt - - -#endif // INCLUDED_SVTOOLS_TOOLPANEL_TABLAYOUTER_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/include/svtools/toolpanel/toolpanel.hxx b/include/svtools/toolpanel/toolpanel.hxx deleted file mode 100644 index e2c9aef..0000000 --- a/include/svtools/toolpanel/toolpanel.hxx +++ /dev/null @@ -1,134 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public ... etc. - the rest is truncated _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits