diff options
author | Frank Schoenheit [fs] <frank.schoenheit@sun.com> | 2010-03-30 13:46:11 +0200 |
---|---|---|
committer | Frank Schoenheit [fs] <frank.schoenheit@sun.com> | 2010-03-30 13:46:11 +0200 |
commit | 75db234dfc435b25085dffe3cc2f398fd2660681 (patch) | |
tree | e1003ee803f127cf1fe81f81741af72713b2316d /svtools/source/toolpanel/tablayouter.cxx | |
parent | ec2d9aa11250e94588f9ff89190303da01c8bbf2 (diff) |
slidecopy: A11Y for the ToolPanelDeck VCL control
Diffstat (limited to 'svtools/source/toolpanel/tablayouter.cxx')
-rwxr-xr-x[-rw-r--r--] | svtools/source/toolpanel/tablayouter.cxx | 34 |
1 files changed, 26 insertions, 8 deletions
diff --git a/svtools/source/toolpanel/tablayouter.cxx b/svtools/source/toolpanel/tablayouter.cxx index 523e2170eba2..186b64c001a7 100644..100755 --- a/svtools/source/toolpanel/tablayouter.cxx +++ b/svtools/source/toolpanel/tablayouter.cxx @@ -29,6 +29,7 @@ #include "svtools/toolpanel/tablayouter.hxx" #include "svtools/toolpanel/toolpaneldeck.hxx" #include "paneltabbar.hxx" +#include "svtaccessiblefactory.hxx" #include <tools/gen.hxx> @@ -37,15 +38,18 @@ namespace svt { //........................................................................ + using ::com::sun::star::uno::Reference; + using ::com::sun::star::accessibility::XAccessible; + //==================================================================== //= TabDeckLayouter_Data //==================================================================== struct TabDeckLayouter_Data { - TabAlignment eAlignment; - IToolPanelDeck& rPanels; - ::std::auto_ptr< PanelTabBar > - pTabBar; + TabAlignment eAlignment; + IToolPanelDeck& rPanels; + ::std::auto_ptr< PanelTabBar > pTabBar; + AccessibleFactoryAccess aAccessibleFactory; TabDeckLayouter_Data( Window& i_rParent, IToolPanelDeck& i_rPanels, const TabAlignment i_eAlignment, const TabItemContent i_eItemContent ) @@ -187,14 +191,28 @@ namespace svt //-------------------------------------------------------------------- void TabDeckLayouter::SetFocusToPanelSelector() { - if ( !m_pData->pTabBar.get() ) - { - OSL_ENSURE( false, "TabDeckLayouter::SetFocusToPanelSelector: already disposed!" ); + if ( lcl_checkDisposed( * m_pData ) ) return; - } m_pData->pTabBar->GrabFocus(); } + //-------------------------------------------------------------------- + ::boost::optional< size_t > TabDeckLayouter::GetPanelItemFromScreenPos( const ::Point& i_rScreenPos ) + { + if ( lcl_checkDisposed( *m_pData ) ) + return ::boost::optional< size_t >(); + const Point aOutputPos( m_pData->pTabBar->ScreenToOutputPixel( i_rScreenPos ) ); + return m_pData->pTabBar->FindItemForPoint( aOutputPos ); + } + + //-------------------------------------------------------------------- + Reference< XAccessible > TabDeckLayouter::GetPanelItemAccessible( const size_t i_nItemPos, const Reference< XAccessible >& i_rParentAccessible ) + { + if ( lcl_checkDisposed( *m_pData ) ) + return NULL; + return m_pData->aAccessibleFactory.getFactory().createAccessibleToolPanelDeckTabBarItem( i_rParentAccessible, m_pData->rPanels, i_nItemPos ); + } + //........................................................................ } // namespace svt //........................................................................ |