summaryrefslogtreecommitdiff
path: root/svtools/source/toolpanel/tablayouter.cxx
diff options
context:
space:
mode:
authorFrank Schoenheit [fs] <frank.schoenheit@sun.com>2010-03-30 13:46:11 +0200
committerFrank Schoenheit [fs] <frank.schoenheit@sun.com>2010-03-30 13:46:11 +0200
commit75db234dfc435b25085dffe3cc2f398fd2660681 (patch)
treee1003ee803f127cf1fe81f81741af72713b2316d /svtools/source/toolpanel/tablayouter.cxx
parentec2d9aa11250e94588f9ff89190303da01c8bbf2 (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.cxx34
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
//........................................................................