[Libreoffice-commits] core.git: include/svx svx/source
Libreoffice Gerrit user
logerrit at kemper.freedesktop.org
Wed Sep 19 14:59:52 UTC 2018
include/svx/dlgctrl.hxx | 66
svx/source/accessibility/svxrectctaccessiblecontext.cxx | 1096 +---------------
svx/source/dialog/dlgctrl.cxx | 554 --------
svx/source/inc/svxrectctaccessiblecontext.hxx | 391 -----
4 files changed, 88 insertions(+), 2019 deletions(-)
New commits:
commit efd0a2dd23fbc069ac829167f7d9ed2e1ce88cfc
Author: Caolán McNamara <caolanm at redhat.com>
AuthorDate: Tue Sep 18 14:52:33 2018 +0100
Commit: Caolán McNamara <caolanm at redhat.com>
CommitDate: Wed Sep 19 16:59:27 2018 +0200
drop newly unused SvxRectCtl
Change-Id: I41fc4f53bedb4d5504aed39bd4d3052e2084fa6d
Reviewed-on: https://gerrit.libreoffice.org/60714
Reviewed-by: Caolán McNamara <caolanm at redhat.com>
Tested-by: Caolán McNamara <caolanm at redhat.com>
diff --git a/include/svx/dlgctrl.hxx b/include/svx/dlgctrl.hxx
index b087b97e6dcc..3d9e1cb95fd5 100644
--- a/include/svx/dlgctrl.hxx
+++ b/include/svx/dlgctrl.hxx
@@ -76,75 +76,9 @@ namespace o3tl
template<> struct typed_flags<CTL_STATE> : is_typed_flags<CTL_STATE, 0x03> {};
}
-class SvxRectCtlAccessibleContext;
class RectCtlAccessibleContext;
class SvxPixelCtlAccessible;
-class SAL_WARN_UNUSED SVX_DLLPUBLIC SvxRectCtl : public Control
-{
-private:
- SVX_DLLPRIVATE void InitSettings(vcl::RenderContext& rRenderContext);
- SVX_DLLPRIVATE void InitRectBitmap();
- SVX_DLLPRIVATE BitmapEx& GetRectBitmap();
- SVX_DLLPRIVATE void Resize_Impl();
-
-protected:
- rtl::Reference<SvxRectCtlAccessibleContext> pAccContext;
- sal_uInt16 nBorderWidth;
- sal_uInt16 nRadius;
- Size aSize;
- Point aPtLT, aPtMT, aPtRT;
- Point aPtLM, aPtMM, aPtRM;
- Point aPtLB, aPtMB, aPtRB;
- Point aPtNew;
- RectPoint eRP, eDefRP;
- std::unique_ptr<BitmapEx> pBitmap;
- CTL_STATE m_nState;
-
- bool mbUpdateForeground : 1;
- bool mbUpdateBackground : 1;
-
- void MarkToResetSettings(bool bUpdateForeground, bool bUpdateBackground);
-
- RectPoint GetRPFromPoint( Point, bool bRTL = false ) const;
- const Point& GetPointFromRP( RectPoint ) const;
- void SetFocusRect();
- Point SetActualRPWithoutInvalidate( RectPoint eNewRP ); // returns the last point
-
- virtual void GetFocus() override;
- virtual void LoseFocus() override;
-
- Point GetApproxLogPtFromPixPt( const Point& rRoughPixelPoint ) const;
-public:
- SvxRectCtl( vcl::Window* pParent, RectPoint eRpt = RectPoint::MM,
- sal_uInt16 nBorder = 200, sal_uInt16 nCircle = 80 );
- virtual ~SvxRectCtl() override;
- virtual void dispose() override;
-
- virtual void Paint( vcl::RenderContext& rRenderContext, const tools::Rectangle& rRect ) override;
- virtual void MouseButtonDown( const MouseEvent& rMEvt ) override;
- virtual void KeyInput( const KeyEvent& rKeyEvt ) override;
- virtual void StateChanged( StateChangedType nStateChange ) override;
- virtual void DataChanged( const DataChangedEvent& rDCEvt ) override;
- virtual void Resize() override;
- virtual Size GetOptimalSize() const override;
-
- void Reset();
- RectPoint GetActualRP() const { return eRP;}
- void SetActualRP( RectPoint eNewRP );
-
- void SetState( CTL_STATE nState );
-
- static const sal_uInt8 NO_CHILDREN = 9; // returns number of usable radio buttons
-
- tools::Rectangle CalculateFocusRectangle() const;
- tools::Rectangle CalculateFocusRectangle( RectPoint eRectPoint ) const;
-
- virtual css::uno::Reference< css::accessibility::XAccessible > CreateAccessible() override;
-
- RectPoint GetApproxRPFromPixPt( const css::awt::Point& rPixelPoint ) const;
-};
-
class SAL_WARN_UNUSED SVX_DLLPUBLIC RectCtl : public weld::CustomWidgetController
{
private:
diff --git a/svx/source/accessibility/svxrectctaccessiblecontext.cxx b/svx/source/accessibility/svxrectctaccessiblecontext.cxx
index a92bdacbc632..106f639a9bbf 100644
--- a/svx/source/accessibility/svxrectctaccessiblecontext.cxx
+++ b/svx/source/accessibility/svxrectctaccessiblecontext.cxx
@@ -98,15 +98,9 @@ static long PointToIndex( RectPoint ePoint )
return nRet;
}
-SvxRectCtlAccessibleContext::SvxRectCtlAccessibleContext(
- const Reference< XAccessible >& rxParent,
- SvxRectCtl& rRepr ) :
-
- SvxRectCtlAccessibleContext_Base( m_aMutex ),
- mxParent( rxParent ),
- mpRepr( &rRepr ),
- mnClientId( 0 ),
- mnSelectedChild( NOCHILDSELECTED )
+RectCtlAccessibleContext::RectCtlAccessibleContext(RectCtl* pRepr)
+ : mpRepr(pRepr)
+ , mnSelectedChild(NOCHILDSELECTED)
{
{
::SolarMutexGuard aSolarGuard;
@@ -117,91 +111,37 @@ SvxRectCtlAccessibleContext::SvxRectCtlAccessibleContext(
mvChildren.resize(MAX_NUM_OF_CHILDREN);
}
-
-SvxRectCtlAccessibleContext::~SvxRectCtlAccessibleContext()
-{
-
- if( IsAlive() )
- {
- osl_atomic_increment( &m_refCount );
- dispose(); // set mpRepr = NULL & release all children
- }
-}
-
-// XAccessible
-Reference< XAccessibleContext > SAL_CALL SvxRectCtlAccessibleContext::getAccessibleContext()
+RectCtlAccessibleContext::~RectCtlAccessibleContext()
{
- return this;
+ ensureDisposed();
}
-// XAccessibleComponent
-sal_Bool SAL_CALL SvxRectCtlAccessibleContext::containsPoint( const awt::Point& rPoint )
-{
- // no guard -> done in getBounds()
-// return GetBoundingBox().IsInside( VCLPoint( rPoint ) );
- return tools::Rectangle( Point( 0, 0 ), GetBoundingBox().GetSize() ).IsInside( VCLPoint( rPoint ) );
-}
+IMPLEMENT_FORWARD_XINTERFACE2( RectCtlAccessibleContext, OAccessibleSelectionHelper, OAccessibleHelper_Base )
+IMPLEMENT_FORWARD_XTYPEPROVIDER2( RectCtlAccessibleContext, OAccessibleSelectionHelper, OAccessibleHelper_Base )
-Reference< XAccessible > SAL_CALL SvxRectCtlAccessibleContext::getAccessibleAtPoint( const awt::Point& rPoint )
+Reference< XAccessible > SAL_CALL RectCtlAccessibleContext::getAccessibleAtPoint( const awt::Point& rPoint )
{
::osl::MutexGuard aGuard( m_aMutex );
- ThrowExceptionIfNotAlive();
-
Reference< XAccessible > xRet;
- long nChild = PointToIndex( mpRepr->GetApproxRPFromPixPt( rPoint ) );
+ long nChild = mpRepr ? PointToIndex(mpRepr->GetApproxRPFromPixPt(rPoint)) : NOCHILDSELECTED;
- if( nChild != NOCHILDSELECTED )
+ if (nChild != NOCHILDSELECTED)
xRet = getAccessibleChild( nChild );
return xRet;
}
-awt::Rectangle SAL_CALL SvxRectCtlAccessibleContext::getBounds()
-{
- // no guard -> done in GetBoundingBox()
- return AWTRectangle( GetBoundingBox() );
-}
-
-awt::Point SAL_CALL SvxRectCtlAccessibleContext::getLocation()
-{
- // no guard -> done in GetBoundingBox()
- return AWTPoint( GetBoundingBox().TopLeft() );
-}
-
-awt::Point SAL_CALL SvxRectCtlAccessibleContext::getLocationOnScreen()
-{
- // no guard -> done in GetBoundingBoxOnScreen()
- return AWTPoint( GetBoundingBoxOnScreen().TopLeft() );
-}
-
-awt::Size SAL_CALL SvxRectCtlAccessibleContext::getSize()
-{
- // no guard -> done in GetBoundingBox()
- return AWTSize( GetBoundingBox().GetSize() );
-}
-
-bool SvxRectCtlAccessibleContext::isVisible()
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- ThrowExceptionIfNotAlive();
-
- return mpRepr->IsVisible();
-}
-
// XAccessibleContext
-sal_Int32 SAL_CALL SvxRectCtlAccessibleContext::getAccessibleChildCount()
+sal_Int32 SAL_CALL RectCtlAccessibleContext::getAccessibleChildCount()
{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- ThrowExceptionIfNotAlive();
+ ::osl::MutexGuard aGuard( m_aMutex );
- return SvxRectCtl::NO_CHILDREN;
+ return RectCtl::NO_CHILDREN;
}
-Reference< XAccessible > SAL_CALL SvxRectCtlAccessibleContext::getAccessibleChild( sal_Int32 nIndex )
+Reference< XAccessible > SAL_CALL RectCtlAccessibleContext::getAccessibleChild( sal_Int32 nIndex )
{
checkChildIndex( nIndex );
@@ -212,11 +152,9 @@ Reference< XAccessible > SAL_CALL SvxRectCtlAccessibleContext::getAccessibleChil
::osl::MutexGuard aGuard( m_aMutex );
- ThrowExceptionIfNotAlive();
-
xChild = mvChildren[ nIndex ].get();
- if( !xChild.is() )
+ if (!xChild.is() && mpRepr)
{
const ChildIndexToPointData* p = IndexToPoint( nIndex );
OUString aName(SvxResId(p->pResIdName));
@@ -224,8 +162,8 @@ Reference< XAccessible > SAL_CALL SvxRectCtlAccessibleContext::getAccessibleChil
tools::Rectangle aFocusRect( mpRepr->CalculateFocusRectangle( p->ePoint ) );
- SvxRectCtlChildAccessibleContext* pChild = new SvxRectCtlChildAccessibleContext(
- this, *mpRepr, aName, aDescr, aFocusRect, nIndex );
+ RectCtlChildAccessibleContext* pChild = new RectCtlChildAccessibleContext(this, aName,
+ aDescr, aFocusRect, nIndex );
mvChildren[ nIndex ] = pChild;
xChild = pChild;
@@ -238,49 +176,26 @@ Reference< XAccessible > SAL_CALL SvxRectCtlAccessibleContext::getAccessibleChil
return xChild;
}
-Reference< XAccessible > SAL_CALL SvxRectCtlAccessibleContext::getAccessibleParent()
-{
- return mxParent;
-}
-
-sal_Int32 SAL_CALL SvxRectCtlAccessibleContext::getAccessibleIndexInParent()
+Reference< XAccessible > SAL_CALL RectCtlAccessibleContext::getAccessibleParent()
{
- ::osl::MutexGuard aGuard( m_aMutex );
- // Use a simple but slow solution for now. Optimize later.
-
- // Iterate over all the parent's children and search for this object.
- if( mxParent.is() )
- {
- Reference< XAccessibleContext > xParentContext( mxParent->getAccessibleContext() );
- if( xParentContext.is() )
- {
- sal_Int32 nChildCount = xParentContext->getAccessibleChildCount();
- for( sal_Int32 i = 0 ; i < nChildCount ; ++i )
- {
- Reference< XAccessible > xChild( xParentContext->getAccessibleChild( i ) );
- if( xChild.get() == static_cast<XAccessible*>(this) )
- return i;
- }
- }
- }
-
- // Return -1 to indicate that this object's parent does not know about the
- // object.
- return -1;
+ ::osl::MutexGuard aGuard( m_aMutex );
+ if (mpRepr)
+ return mpRepr->getAccessibleParent();
+ return uno::Reference<css::accessibility::XAccessible>();
}
-sal_Int16 SAL_CALL SvxRectCtlAccessibleContext::getAccessibleRole()
+sal_Int16 SAL_CALL RectCtlAccessibleContext::getAccessibleRole()
{
return AccessibleRole::PANEL;
}
-OUString SAL_CALL SvxRectCtlAccessibleContext::getAccessibleDescription()
+OUString SAL_CALL RectCtlAccessibleContext::getAccessibleDescription()
{
::osl::MutexGuard aGuard( m_aMutex );
return msDescription + " Please use arrow key to selection.";
}
-OUString SAL_CALL SvxRectCtlAccessibleContext::getAccessibleName()
+OUString SAL_CALL RectCtlAccessibleContext::getAccessibleName()
{
::osl::MutexGuard aGuard( m_aMutex );
return msName;
@@ -289,37 +204,20 @@ OUString SAL_CALL SvxRectCtlAccessibleContext::getAccessibleName()
/** Return empty reference to indicate that the relation set is not
supported.
*/
-Reference< XAccessibleRelationSet > SAL_CALL SvxRectCtlAccessibleContext::getAccessibleRelationSet()
+Reference< XAccessibleRelationSet > SAL_CALL RectCtlAccessibleContext::getAccessibleRelationSet()
{
- //return Reference< XAccessibleRelationSet >();
- utl::AccessibleRelationSetHelper* pRelationSetHelper = new utl::AccessibleRelationSetHelper;
- uno::Reference< css::accessibility::XAccessibleRelationSet > xSet = pRelationSetHelper;
- vcl::Window* pWindow = mpRepr;
- if ( pWindow )
- {
- // vcl::Window *pLabeledBy = pWindow->GetAccRelationLabeledBy();
- vcl::Window *pLabeledBy = pWindow->GetAccessibleRelationLabeledBy();
- if ( pLabeledBy && pLabeledBy != pWindow )
- {
- uno::Sequence< uno::Reference< uno::XInterface > > aSequence { pLabeledBy->GetAccessible() };
- pRelationSetHelper->AddRelation( css::accessibility::AccessibleRelation( css::accessibility::AccessibleRelationType::LABELED_BY, aSequence ) );
- }
- vcl::Window* pMemberOf = pWindow->GetAccessibleRelationMemberOf();
- if ( pMemberOf && pMemberOf != pWindow )
- {
- uno::Sequence< uno::Reference< uno::XInterface > > aSequence { pMemberOf->GetAccessible() };
- pRelationSetHelper->AddRelation( css::accessibility::AccessibleRelation( css::accessibility::AccessibleRelationType::MEMBER_OF, aSequence ) );
- }
- }
- return xSet;
+ ::osl::MutexGuard aGuard( m_aMutex );
+ if (mpRepr)
+ return mpRepr->get_accessible_relation_set();
+ return uno::Reference<css::accessibility::XAccessibleRelationSet>();
}
-Reference< XAccessibleStateSet > SAL_CALL SvxRectCtlAccessibleContext::getAccessibleStateSet()
+Reference< XAccessibleStateSet > SAL_CALL RectCtlAccessibleContext::getAccessibleStateSet()
{
::osl::MutexGuard aGuard( m_aMutex );
utl::AccessibleStateSetHelper* pStateSetHelper = new utl::AccessibleStateSetHelper;
- if( IsAlive() )
+ if (mpRepr)
{
pStateSetHelper->AddState( AccessibleStateType::ENABLED );
pStateSetHelper->AddState( AccessibleStateType::FOCUSABLE );
@@ -329,7 +227,7 @@ Reference< XAccessibleStateSet > SAL_CALL SvxRectCtlAccessibleContext::getAccess
pStateSetHelper->AddState( AccessibleStateType::SHOWING );
- if( isVisible() )
+ if( mpRepr->IsVisible() )
pStateSetHelper->AddState( AccessibleStateType::VISIBLE );
}
else
@@ -338,103 +236,37 @@ Reference< XAccessibleStateSet > SAL_CALL SvxRectCtlAccessibleContext::getAccess
return pStateSetHelper;
}
-lang::Locale SAL_CALL SvxRectCtlAccessibleContext::getLocale()
-{
- ::osl::MutexGuard aGuard( m_aMutex );
- if( mxParent.is() )
- {
- Reference< XAccessibleContext > xParentContext( mxParent->getAccessibleContext() );
- if( xParentContext.is() )
- return xParentContext->getLocale();
- }
-
- // No parent. Therefore throw exception to indicate this cluelessness.
- throw IllegalAccessibleComponentStateException();
-}
-
-void SAL_CALL SvxRectCtlAccessibleContext::addAccessibleEventListener( const Reference< XAccessibleEventListener >& xListener )
-{
- if (xListener.is())
- {
- ::osl::MutexGuard aGuard( m_aMutex );
- if (!mnClientId)
- mnClientId = comphelper::AccessibleEventNotifier::registerClient( );
- comphelper::AccessibleEventNotifier::addEventListener( mnClientId, xListener );
- }
-}
-
-void SAL_CALL SvxRectCtlAccessibleContext::removeAccessibleEventListener( const Reference< XAccessibleEventListener >& xListener )
-{
- if (xListener.is())
- {
- ::osl::MutexGuard aGuard( m_aMutex );
-
- sal_Int32 nListenerCount = comphelper::AccessibleEventNotifier::removeEventListener( mnClientId, xListener );
- if ( !nListenerCount )
- {
- // no listeners anymore
- // -> revoke ourself. This may lead to the notifier thread dying (if we were the last client),
- // and at least to us not firing any events anymore, in case somebody calls
- // NotifyAccessibleEvent, again
- comphelper::AccessibleEventNotifier::revokeClient( mnClientId );
- mnClientId = 0;
- }
- }
-}
-
-void SAL_CALL SvxRectCtlAccessibleContext::grabFocus()
+void SAL_CALL RectCtlAccessibleContext::grabFocus()
{
::SolarMutexGuard aSolarGuard;
::osl::MutexGuard aGuard( m_aMutex );
- ThrowExceptionIfNotAlive();
-
- mpRepr->GrabFocus();
+ if (mpRepr)
+ mpRepr->GrabFocus();
}
-sal_Int32 SvxRectCtlAccessibleContext::getForeground( )
+sal_Int32 RectCtlAccessibleContext::getForeground()
{
::SolarMutexGuard aSolarGuard;
::osl::MutexGuard aGuard( m_aMutex );
- ThrowExceptionIfNotAlive();
- return sal_Int32(mpRepr->GetControlForeground());
+ //see RectCtl::Paint
+ const StyleSettings& rStyles = Application::GetSettings().GetStyleSettings();
+ return sal_Int32(rStyles.GetLabelTextColor());
}
-sal_Int32 SvxRectCtlAccessibleContext::getBackground( )
+sal_Int32 RectCtlAccessibleContext::getBackground( )
{
::SolarMutexGuard aSolarGuard;
::osl::MutexGuard aGuard( m_aMutex );
- ThrowExceptionIfNotAlive();
-
- return sal_Int32(mpRepr->GetControlBackground());
-}
-
-// XServiceInfo
-OUString SAL_CALL SvxRectCtlAccessibleContext::getImplementationName()
-{
- return OUString( "com.sun.star.comp.ui.SvxRectCtlAccessibleContext" );
-}
-sal_Bool SAL_CALL SvxRectCtlAccessibleContext::supportsService( const OUString& sServiceName )
-{
- return cppu::supportsService(this, sServiceName);
-}
-
-Sequence< OUString > SAL_CALL SvxRectCtlAccessibleContext::getSupportedServiceNames()
-{
- const OUString sServiceName( "com.sun.star.accessibility.AccessibleContext" );
- return Sequence< OUString >( &sServiceName, 1 );
-}
-
-// XTypeProvider
-Sequence< sal_Int8 > SAL_CALL SvxRectCtlAccessibleContext::getImplementationId()
-{
- return css::uno::Sequence<sal_Int8>();
+ //see RectCtl::Paint
+ const StyleSettings& rStyles = Application::GetSettings().GetStyleSettings();
+ return sal_Int32(rStyles.GetDialogColor());
}
// XAccessibleSelection
-void SAL_CALL SvxRectCtlAccessibleContext::selectAccessibleChild( sal_Int32 nIndex )
+void RectCtlAccessibleContext::implSelect(sal_Int32 nIndex, bool bSelect)
{
::SolarMutexGuard aSolarGuard;
@@ -442,18 +274,25 @@ void SAL_CALL SvxRectCtlAccessibleContext::selectAccessibleChild( sal_Int32 nInd
checkChildIndex( nIndex );
- ThrowExceptionIfNotAlive();
-
const ChildIndexToPointData* pData = IndexToPoint( nIndex );
- DBG_ASSERT( pData,
- "SvxRectCtlAccessibleContext::selectAccessibleChild(): this is an impossible state! Or at least should be..." );
+ DBG_ASSERT(pData, "RectCtlAccessibleContext::selectAccessibleChild(): this is an impossible state! Or at least should be...");
- // this does all what is needed, including the change of the child's state!
- mpRepr->SetActualRP( pData->ePoint );
+ if (mpRepr)
+ {
+ if (bSelect)
+ {
+ // this does all what is needed, including the change of the child's state!
+ mpRepr->SetActualRP( pData->ePoint );
+ }
+ else
+ {
+ SAL_WARN( "svx", "RectCtlAccessibleContext::clearAccessibleSelection() is not possible!" );
+ }
+ }
}
-sal_Bool SAL_CALL SvxRectCtlAccessibleContext::isAccessibleChildSelected( sal_Int32 nIndex )
+bool RectCtlAccessibleContext::implIsSelected( sal_Int32 nIndex )
{
::osl::MutexGuard aGuard( m_aMutex );
@@ -462,51 +301,14 @@ sal_Bool SAL_CALL SvxRectCtlAccessibleContext::isAccessibleChildSelected( sal_In
return nIndex == mnSelectedChild;
}
-void SAL_CALL SvxRectCtlAccessibleContext::clearAccessibleSelection()
-{
- SAL_WARN( "svx", "SvxRectCtlAccessibleContext::clearAccessibleSelection() is not possible!" );
-}
-
-void SAL_CALL SvxRectCtlAccessibleContext::selectAllAccessibleChildren()
-{
- // guard in selectAccessibleChild()!
-
- selectAccessibleChild( 0 ); // default per definition
-}
-
-sal_Int32 SAL_CALL SvxRectCtlAccessibleContext::getSelectedAccessibleChildCount()
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- return mnSelectedChild == NOCHILDSELECTED? 0 : 1;
-}
-
-Reference< XAccessible > SAL_CALL SvxRectCtlAccessibleContext::getSelectedAccessibleChild( sal_Int32 nIndex )
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if( nIndex || mnSelectedChild == NOCHILDSELECTED )
- // in our case only for the first (0) _selected_ child this is a valid request
- throw lang::IndexOutOfBoundsException();
-
- return getAccessibleChild( mnSelectedChild );
-}
-
-void SAL_CALL SvxRectCtlAccessibleContext::deselectAccessibleChild( sal_Int32 /*nIndex*/ )
-{
- SAL_WARN( "svx", "SvxRectCtlAccessibleContext::deselectAccessibleChild() is not possible!" );
-
- throw lang::IndexOutOfBoundsException( "deselectAccessibleChild is not possible in this context", *this ); // never possible
-}
-
// internals
-void SvxRectCtlAccessibleContext::checkChildIndex( long nIndex )
+void RectCtlAccessibleContext::checkChildIndex( long nIndex )
{
if( nIndex < 0 || nIndex >= getAccessibleChildCount() )
throw lang::IndexOutOfBoundsException();
}
-void SvxRectCtlAccessibleContext::FireChildFocus( RectPoint eButton )
+void RectCtlAccessibleContext::FireChildFocus( RectPoint eButton )
{
::osl::MutexGuard aGuard( m_aMutex );
long nNew = PointToIndex( eButton );
@@ -522,19 +324,17 @@ void SvxRectCtlAccessibleContext::FireChildFocus( RectPoint eButton )
}
else
{
- const Reference< XInterface > xSource( *this );
Any aOld;
Any aNew;
aNew <<= AccessibleStateType::FOCUSED;
- if (mnClientId)
- comphelper::AccessibleEventNotifier::addEvent( mnClientId,
- AccessibleEventObject( xSource, AccessibleEventId::STATE_CHANGED, aNew, aOld ) );
+ NotifyAccessibleEvent(AccessibleEventId::STATE_CHANGED, aOld, aNew);
}
}
else
mnSelectedChild = NOCHILDSELECTED;
}
-void SvxRectCtlAccessibleContext::selectChild( long nNew )
+
+void RectCtlAccessibleContext::selectChild( long nNew )
{
::osl::MutexGuard aGuard( m_aMutex );
if( nNew != mnSelectedChild )
@@ -542,7 +342,7 @@ void SvxRectCtlAccessibleContext::selectChild( long nNew )
long nNumOfChildren = getAccessibleChildCount();
if( nNew < nNumOfChildren )
{ // valid index
- SvxRectCtlChildAccessibleContext* pChild;
+ RectCtlChildAccessibleContext* pChild;
if( mnSelectedChild != NOCHILDSELECTED )
{ // deselect old selected child if one is selected
pChild = mvChildren[ mnSelectedChild ].get();
@@ -564,770 +364,46 @@ void SvxRectCtlAccessibleContext::selectChild( long nNew )
}
}
-void SvxRectCtlAccessibleContext::selectChild(RectPoint eButton )
+void RectCtlAccessibleContext::selectChild(RectPoint eButton )
{
// no guard -> is done in next selectChild
selectChild(PointToIndex( eButton ));
}
-void SAL_CALL SvxRectCtlAccessibleContext::disposing()
+void SAL_CALL RectCtlAccessibleContext::disposing()
{
- if( !rBHelper.bDisposed )
+ ::osl::MutexGuard aGuard(m_aMutex);
+ OAccessibleSelectionHelper::disposing();
+ for (auto & rxChild : mvChildren)
{
- {
- ::osl::MutexGuard aGuard( m_aMutex );
- mpRepr = nullptr; // object dies with representation
-
- for (auto & rxChild : mvChildren)
- if( rxChild.is() )
- rxChild->dispose();
-
- mvChildren.clear();
- }
-
- {
- ::osl::MutexGuard aGuard( m_aMutex );
-
- // Send a disposing to all listeners.
- if ( mnClientId )
- {
- comphelper::AccessibleEventNotifier::revokeClientNotifyDisposing( mnClientId, *this );
- mnClientId = 0;
- }
-
- mxParent.clear();
- }
+ if( rxChild.is() )
+ rxChild->dispose();
}
+ mvChildren.clear();
+ mpRepr = nullptr;
}
-tools::Rectangle SvxRectCtlAccessibleContext::GetBoundingBoxOnScreen()
-{
- ::SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( m_aMutex );
-
- ThrowExceptionIfNotAlive();
-
- return tools::Rectangle( mpRepr->GetParent()->OutputToScreenPixel( mpRepr->GetPosPixel() ), mpRepr->GetSizePixel() );
-}
-
-tools::Rectangle SvxRectCtlAccessibleContext::GetBoundingBox()
+awt::Rectangle RectCtlAccessibleContext::implGetBounds()
{
::SolarMutexGuard aSolarGuard;
::osl::MutexGuard aGuard( m_aMutex );
- ThrowExceptionIfNotAlive();
-
- return tools::Rectangle( mpRepr->GetPosPixel(), mpRepr->GetSizePixel() );
-}
-
-void SvxRectCtlAccessibleContext::ThrowExceptionIfNotAlive()
-{
- if( rBHelper.bDisposed || rBHelper.bInDispose )
- throw lang::DisposedException();
-}
+ awt::Rectangle aRet;
-RectCtlAccessibleContext::RectCtlAccessibleContext(RectCtl* pRepr)
- : mpRepr(pRepr)
- , mnSelectedChild(NOCHILDSELECTED)
-{
+ if (mpRepr)
{
- ::SolarMutexGuard aSolarGuard;
- msName = SvxResId( RID_SVXSTR_RECTCTL_ACC_CORN_NAME );
- msDescription = SvxResId( RID_SVXSTR_RECTCTL_ACC_CORN_DESCR );
- }
-
- mvChildren.resize(MAX_NUM_OF_CHILDREN);
-}
-
-RectCtlAccessibleContext::~RectCtlAccessibleContext()
-{
- ensureDisposed();
-}
-
-IMPLEMENT_FORWARD_XINTERFACE2( RectCtlAccessibleContext, OAccessibleSelectionHelper, OAccessibleHelper_Base )
-IMPLEMENT_FORWARD_XTYPEPROVIDER2( RectCtlAccessibleContext, OAccessibleSelectionHelper, OAccessibleHelper_Base )
-
-Reference< XAccessible > SAL_CALL RectCtlAccessibleContext::getAccessibleAtPoint( const awt::Point& rPoint )
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- Reference< XAccessible > xRet;
-
- long nChild = mpRepr ? PointToIndex(mpRepr->GetApproxRPFromPixPt(rPoint)) : NOCHILDSELECTED;
-
- if (nChild != NOCHILDSELECTED)
- xRet = getAccessibleChild( nChild );
-
- return xRet;
-}
-
-// XAccessibleContext
-sal_Int32 SAL_CALL RectCtlAccessibleContext::getAccessibleChildCount()
-{
- ::osl::MutexGuard aGuard( m_aMutex );
+ const Point aOutPos;
+ Size aOutSize(mpRepr->GetOutputSizePixel());
- return SvxRectCtl::NO_CHILDREN;
-}
+ aRet.X = aOutPos.X();
+ aRet.Y = aOutPos.Y();
+ aRet.Width = aOutSize.Width();
+ aRet.Height = aOutSize.Height();
+ }
-Reference< XAccessible > SAL_CALL RectCtlAccessibleContext::getAccessibleChild( sal_Int32 nIndex )
-{
- checkChildIndex( nIndex );
-
- Reference< XAccessible > xChild(mvChildren[ nIndex ].get());
- if( !xChild.is() )
- {
- ::SolarMutexGuard aSolarGuard;
-
- ::osl::MutexGuard aGuard( m_aMutex );
-
- xChild = mvChildren[ nIndex ].get();
-
- if (!xChild.is() && mpRepr)
- {
- const ChildIndexToPointData* p = IndexToPoint( nIndex );
- OUString aName(SvxResId(p->pResIdName));
- OUString aDescr(SvxResId(p->pResIdDescr));
-
- tools::Rectangle aFocusRect( mpRepr->CalculateFocusRectangle( p->ePoint ) );
-
- RectCtlChildAccessibleContext* pChild = new RectCtlChildAccessibleContext(this, aName,
- aDescr, aFocusRect, nIndex );
- mvChildren[ nIndex ] = pChild;
- xChild = pChild;
-
- // set actual state
- if( mnSelectedChild == nIndex )
- pChild->setStateChecked( true );
- }
- }
-
- return xChild;
-}
-
-Reference< XAccessible > SAL_CALL RectCtlAccessibleContext::getAccessibleParent()
-{
- ::osl::MutexGuard aGuard( m_aMutex );
- if (mpRepr)
- return mpRepr->getAccessibleParent();
- return uno::Reference<css::accessibility::XAccessible>();
-}
-
-sal_Int16 SAL_CALL RectCtlAccessibleContext::getAccessibleRole()
-{
- return AccessibleRole::PANEL;
-}
-
-OUString SAL_CALL RectCtlAccessibleContext::getAccessibleDescription()
-{
- ::osl::MutexGuard aGuard( m_aMutex );
- return msDescription + " Please use arrow key to selection.";
-}
-
-OUString SAL_CALL RectCtlAccessibleContext::getAccessibleName()
-{
- ::osl::MutexGuard aGuard( m_aMutex );
- return msName;
-}
-
-/** Return empty reference to indicate that the relation set is not
- supported.
-*/
-Reference< XAccessibleRelationSet > SAL_CALL RectCtlAccessibleContext::getAccessibleRelationSet()
-{
- ::osl::MutexGuard aGuard( m_aMutex );
- if (mpRepr)
- return mpRepr->get_accessible_relation_set();
- return uno::Reference<css::accessibility::XAccessibleRelationSet>();
-}
-
-Reference< XAccessibleStateSet > SAL_CALL RectCtlAccessibleContext::getAccessibleStateSet()
-{
- ::osl::MutexGuard aGuard( m_aMutex );
- utl::AccessibleStateSetHelper* pStateSetHelper = new utl::AccessibleStateSetHelper;
-
- if (mpRepr)
- {
- pStateSetHelper->AddState( AccessibleStateType::ENABLED );
- pStateSetHelper->AddState( AccessibleStateType::FOCUSABLE );
- if( mpRepr->HasFocus() )
- pStateSetHelper->AddState( AccessibleStateType::FOCUSED );
- pStateSetHelper->AddState( AccessibleStateType::OPAQUE );
-
- pStateSetHelper->AddState( AccessibleStateType::SHOWING );
-
- if( mpRepr->IsVisible() )
- pStateSetHelper->AddState( AccessibleStateType::VISIBLE );
- }
- else
- pStateSetHelper->AddState( AccessibleStateType::DEFUNC );
-
- return pStateSetHelper;
-}
-
-void SAL_CALL RectCtlAccessibleContext::grabFocus()
-{
- ::SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if (mpRepr)
- mpRepr->GrabFocus();
-}
-
-sal_Int32 RectCtlAccessibleContext::getForeground()
-{
- ::SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( m_aMutex );
-
- //see SvxRectCtl::Paint
- const StyleSettings& rStyles = Application::GetSettings().GetStyleSettings();
- return sal_Int32(rStyles.GetLabelTextColor());
-}
-
-sal_Int32 RectCtlAccessibleContext::getBackground( )
-{
- ::SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( m_aMutex );
-
- //see SvxRectCtl::Paint
- const StyleSettings& rStyles = Application::GetSettings().GetStyleSettings();
- return sal_Int32(rStyles.GetDialogColor());
-}
-
-// XAccessibleSelection
-void RectCtlAccessibleContext::implSelect(sal_Int32 nIndex, bool bSelect)
-{
- ::SolarMutexGuard aSolarGuard;
-
- ::osl::MutexGuard aGuard( m_aMutex );
-
- checkChildIndex( nIndex );
-
- const ChildIndexToPointData* pData = IndexToPoint( nIndex );
-
- DBG_ASSERT(pData, "RectCtlAccessibleContext::selectAccessibleChild(): this is an impossible state! Or at least should be...");
-
- if (mpRepr)
- {
- if (bSelect)
- {
- // this does all what is needed, including the change of the child's state!
- mpRepr->SetActualRP( pData->ePoint );
- }
- else
- {
- SAL_WARN( "svx", "RectCtlAccessibleContext::clearAccessibleSelection() is not possible!" );
- }
- }
-}
-
-bool RectCtlAccessibleContext::implIsSelected( sal_Int32 nIndex )
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- checkChildIndex( nIndex );
-
- return nIndex == mnSelectedChild;
-}
-
-// internals
-void RectCtlAccessibleContext::checkChildIndex( long nIndex )
-{
- if( nIndex < 0 || nIndex >= getAccessibleChildCount() )
- throw lang::IndexOutOfBoundsException();
-}
-
-void RectCtlAccessibleContext::FireChildFocus( RectPoint eButton )
-{
- ::osl::MutexGuard aGuard( m_aMutex );
- long nNew = PointToIndex( eButton );
- long nNumOfChildren = getAccessibleChildCount();
- if( nNew < nNumOfChildren )
- {
- // select new child
- mnSelectedChild = nNew;
- if( nNew != NOCHILDSELECTED )
- {
- if( mvChildren[ nNew ].is() )
- mvChildren[ nNew ]->FireFocusEvent();
- }
- else
- {
- Any aOld;
- Any aNew;
- aNew <<= AccessibleStateType::FOCUSED;
- NotifyAccessibleEvent(AccessibleEventId::STATE_CHANGED, aOld, aNew);
- }
- }
- else
- mnSelectedChild = NOCHILDSELECTED;
-}
-
-void RectCtlAccessibleContext::selectChild( long nNew )
-{
- ::osl::MutexGuard aGuard( m_aMutex );
- if( nNew != mnSelectedChild )
- {
- long nNumOfChildren = getAccessibleChildCount();
- if( nNew < nNumOfChildren )
- { // valid index
- RectCtlChildAccessibleContext* pChild;
- if( mnSelectedChild != NOCHILDSELECTED )
- { // deselect old selected child if one is selected
- pChild = mvChildren[ mnSelectedChild ].get();
- if( pChild )
- pChild->setStateChecked( false );
- }
-
- // select new child
- mnSelectedChild = nNew;
-
- if( nNew != NOCHILDSELECTED )
- {
- if( mvChildren[ nNew ].is() )
- mvChildren[ nNew ]->setStateChecked( true );
- }
- }
- else
- mnSelectedChild = NOCHILDSELECTED;
- }
-}
-
-void RectCtlAccessibleContext::selectChild(RectPoint eButton )
-{
- // no guard -> is done in next selectChild
- selectChild(PointToIndex( eButton ));
-}
-
-void SAL_CALL RectCtlAccessibleContext::disposing()
-{
- ::osl::MutexGuard aGuard(m_aMutex);
- OAccessibleSelectionHelper::disposing();
- for (auto & rxChild : mvChildren)
- {
- if( rxChild.is() )
- rxChild->dispose();
- }
- mvChildren.clear();
- mpRepr = nullptr;
-}
-
-awt::Rectangle RectCtlAccessibleContext::implGetBounds()
-{
- ::SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( m_aMutex );
-
- awt::Rectangle aRet;
-
- if (mpRepr)
- {
- const Point aOutPos;
- Size aOutSize(mpRepr->GetOutputSizePixel());
-
- aRet.X = aOutPos.X();
- aRet.Y = aOutPos.Y();
- aRet.Width = aOutSize.Width();
- aRet.Height = aOutSize.Height();
- }
-
- return aRet;
-}
-
-SvxRectCtlChildAccessibleContext::SvxRectCtlChildAccessibleContext(
- const Reference<XAccessible>& rxParent,
- const vcl::Window& rParentWindow,
- const OUString& rName,
- const OUString& rDescription,
- const tools::Rectangle& rBoundingBox,
- long nIndexInParent ) :
-
- SvxRectCtlChildAccessibleContext_Base( maMutex ),
- msDescription( rDescription ),
- msName( rName ),
- mxParent(rxParent),
- maBoundingBox( rBoundingBox ),
- mrParentWindow( rParentWindow ),
- mnClientId( 0 ),
- mnIndexInParent( nIndexInParent ),
- mbIsChecked( false )
-{
-}
-
-
-SvxRectCtlChildAccessibleContext::~SvxRectCtlChildAccessibleContext()
-{
-
- if( IsAlive() )
- {
- osl_atomic_increment( &m_refCount );
- dispose(); // set mpRepr = NULL & release all children
- }
-}
-
-// XAccessible
-Reference< XAccessibleContext> SAL_CALL SvxRectCtlChildAccessibleContext::getAccessibleContext()
-{
- return this;
-}
-
-// XAccessibleComponent
-sal_Bool SAL_CALL SvxRectCtlChildAccessibleContext::containsPoint( const awt::Point& rPoint )
-{
- // no guard -> done in getBounds()
- return tools::Rectangle( Point( 0, 0 ), GetBoundingBox().GetSize() ).IsInside( VCLPoint( rPoint ) );
-}
-
-Reference< XAccessible > SAL_CALL SvxRectCtlChildAccessibleContext::getAccessibleAtPoint( const awt::Point& /*rPoint*/ )
-{
- return Reference< XAccessible >();
-}
-
-awt::Rectangle SAL_CALL SvxRectCtlChildAccessibleContext::getBounds()
-{
- // no guard -> done in getBoundingBox()
- return AWTRectangle( GetBoundingBox() );
-}
-
-awt::Point SAL_CALL SvxRectCtlChildAccessibleContext::getLocation()
-{
- // no guard -> done in getBoundingBox()
- return AWTPoint( GetBoundingBox().TopLeft() );
-}
-
-awt::Point SAL_CALL SvxRectCtlChildAccessibleContext::getLocationOnScreen()
-{
- // no guard -> done in getBoundingBoxOnScreen()
- return AWTPoint( GetBoundingBoxOnScreen().TopLeft() );
-}
-
-awt::Size SAL_CALL SvxRectCtlChildAccessibleContext::getSize()
-{
- // no guard -> done in getBoundingBox()
- return AWTSize( GetBoundingBox().GetSize() );
-}
-
-void SAL_CALL SvxRectCtlChildAccessibleContext::grabFocus()
-{
-}
-
-sal_Int32 SvxRectCtlChildAccessibleContext::getForeground( )
-{
- ::SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( maMutex );
- ThrowExceptionIfNotAlive();
- return sal_Int32(mrParentWindow.GetControlForeground());
-}
-sal_Int32 SvxRectCtlChildAccessibleContext::getBackground( )
-{
- ::SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( maMutex );
-
- ThrowExceptionIfNotAlive();
- return sal_Int32(mrParentWindow.GetControlBackground());
-}
-
-// XAccessibleContext
-sal_Int32 SAL_CALL SvxRectCtlChildAccessibleContext::getAccessibleChildCount()
-{
- return 0;
-}
-
-Reference< XAccessible > SAL_CALL SvxRectCtlChildAccessibleContext::getAccessibleChild( sal_Int32 /*nIndex*/ )
-{
- throw lang::IndexOutOfBoundsException();
-}
-
-Reference< XAccessible > SAL_CALL SvxRectCtlChildAccessibleContext::getAccessibleParent()
-{
- return mxParent;
-}
-
-sal_Int32 SAL_CALL SvxRectCtlChildAccessibleContext::getAccessibleIndexInParent()
-{
- return mnIndexInParent;
-}
-
-sal_Int16 SAL_CALL SvxRectCtlChildAccessibleContext::getAccessibleRole()
-{
- return AccessibleRole::RADIO_BUTTON;
-}
-
-OUString SAL_CALL SvxRectCtlChildAccessibleContext::getAccessibleDescription()
-{
- ::osl::MutexGuard aGuard( maMutex );
- return msDescription;
-}
-
-OUString SAL_CALL SvxRectCtlChildAccessibleContext::getAccessibleName()
-{
- ::osl::MutexGuard aGuard( maMutex );
- return msName;
-}
-
-/** Return empty reference to indicate that the relation set is not
- supported.
-*/
-Reference<XAccessibleRelationSet> SAL_CALL SvxRectCtlChildAccessibleContext::getAccessibleRelationSet()
-{
- utl::AccessibleRelationSetHelper* pRelationSetHelper = new utl::AccessibleRelationSetHelper;
- uno::Reference< css::accessibility::XAccessibleRelationSet > xSet = pRelationSetHelper;
- if( mxParent.is() )
- {
- uno::Sequence< uno::Reference< uno::XInterface > > aSequence { mxParent };
- pRelationSetHelper->AddRelation( css::accessibility::AccessibleRelation( css::accessibility::AccessibleRelationType::MEMBER_OF, aSequence ) );
-
- }
-
- return xSet;
-}
-
-Reference< XAccessibleStateSet > SAL_CALL SvxRectCtlChildAccessibleContext::getAccessibleStateSet()
-{
- ::osl::MutexGuard aGuard( maMutex );
- utl::AccessibleStateSetHelper* pStateSetHelper = new utl::AccessibleStateSetHelper;
-
- if( IsAlive() )
- {
- if( mbIsChecked )
- {
- pStateSetHelper->AddState( AccessibleStateType::CHECKED );
-// pStateSetHelper->AddState( AccessibleStateType::SELECTED );
- }
-
- pStateSetHelper->AddState( AccessibleStateType::ENABLED );
- pStateSetHelper->AddState( AccessibleStateType::SENSITIVE );
- pStateSetHelper->AddState( AccessibleStateType::OPAQUE );
- pStateSetHelper->AddState( AccessibleStateType::SELECTABLE );
- pStateSetHelper->AddState( AccessibleStateType::SHOWING );
- pStateSetHelper->AddState( AccessibleStateType::VISIBLE );
- }
- else
- pStateSetHelper->AddState( AccessibleStateType::DEFUNC );
-
- return pStateSetHelper;
-}
-
-lang::Locale SAL_CALL SvxRectCtlChildAccessibleContext::getLocale()
-{
- ::osl::MutexGuard aGuard( maMutex );
- if( mxParent.is() )
- {
- Reference< XAccessibleContext > xParentContext( mxParent->getAccessibleContext() );
- if( xParentContext.is() )
- return xParentContext->getLocale();
- }
-
- // No locale and no parent. Therefore throw exception to indicate this
- // cluelessness.
- throw IllegalAccessibleComponentStateException();
-}
-
-void SAL_CALL SvxRectCtlChildAccessibleContext::addAccessibleEventListener( const Reference< XAccessibleEventListener >& xListener )
-{
- if (xListener.is())
- {
- ::osl::MutexGuard aGuard( maMutex );
- if (!mnClientId)
- mnClientId = comphelper::AccessibleEventNotifier::registerClient( );
- comphelper::AccessibleEventNotifier::addEventListener( mnClientId, xListener );
- }
-}
-
-
-void SAL_CALL SvxRectCtlChildAccessibleContext::removeAccessibleEventListener( const Reference< XAccessibleEventListener >& xListener )
-{
- if (xListener.is())
- {
- ::osl::MutexGuard aGuard( maMutex );
-
- sal_Int32 nListenerCount = comphelper::AccessibleEventNotifier::removeEventListener( mnClientId, xListener );
- if ( !nListenerCount )
- {
- // no listeners anymore
- // -> revoke ourself. This may lead to the notifier thread dying (if we were the last client),
- // and at least to us not firing any events anymore, in case somebody calls
- // NotifyAccessibleEvent, again
- comphelper::AccessibleEventNotifier::revokeClient( mnClientId );
- mnClientId = 0;
- }
- }
-}
-
-// XAccessibleValue
-Any SAL_CALL SvxRectCtlChildAccessibleContext::getCurrentValue()
-{
- ThrowExceptionIfNotAlive();
-
- Any aRet;
- aRet <<= ( mbIsChecked? 1.0 : 0.0 );
- return aRet;
-}
-
-sal_Bool SAL_CALL SvxRectCtlChildAccessibleContext::setCurrentValue( const Any& /*aNumber*/ )
-{
- return false;
-}
-
-Any SAL_CALL SvxRectCtlChildAccessibleContext::getMaximumValue()
-{
- Any aRet;
- aRet <<= 1.0;
- return aRet;
-}
-
-Any SAL_CALL SvxRectCtlChildAccessibleContext::getMinimumValue()
-{
- Any aRet;
- aRet <<= 0.0;
return aRet;
}
-
-// XAccessibleAction
-
-
-sal_Int32 SvxRectCtlChildAccessibleContext::getAccessibleActionCount( )
-{
- return 1;
-}
-
-
-sal_Bool SvxRectCtlChildAccessibleContext::doAccessibleAction ( sal_Int32 nIndex )
-{
- ::osl::MutexGuard aGuard( maMutex );
-
- if ( nIndex < 0 || nIndex >= getAccessibleActionCount() )
- throw IndexOutOfBoundsException();
-
- Reference<XAccessibleSelection> xSelection( mxParent, UNO_QUERY);
-
- xSelection->selectAccessibleChild(mnIndexInParent);
-
- return true;
-}
-
-
-OUString SvxRectCtlChildAccessibleContext::getAccessibleActionDescription ( sal_Int32 nIndex )
-{
- ::osl::MutexGuard aGuard( maMutex );
-
- if ( nIndex < 0 || nIndex >= getAccessibleActionCount() )
- throw IndexOutOfBoundsException();
-
- return OUString("select");
-}
-
-
-Reference< XAccessibleKeyBinding > SvxRectCtlChildAccessibleContext::getAccessibleActionKeyBinding( sal_Int32 nIndex )
-{
- ::osl::MutexGuard aGuard( maMutex );
-
- if ( nIndex < 0 || nIndex >= getAccessibleActionCount() )
- throw IndexOutOfBoundsException();
-
- return Reference< XAccessibleKeyBinding >();
-}
-
-// XServiceInfo
-OUString SAL_CALL SvxRectCtlChildAccessibleContext::getImplementationName()
-{
- return OUString( "com.sun.star.comp.ui.SvxRectCtlChildAccessibleContext" );
-}
-
-sal_Bool SAL_CALL SvxRectCtlChildAccessibleContext::supportsService( const OUString& sServiceName )
-{
- return cppu::supportsService(this, sServiceName);
-}
-
-Sequence< OUString > SAL_CALL SvxRectCtlChildAccessibleContext::getSupportedServiceNames()
-{
- const OUString sServiceName ("com.sun.star.accessibility.AccessibleContext");
- return Sequence< OUString >( &sServiceName, 1 );
-}
-
-// XTypeProvider
-Sequence< sal_Int8 > SAL_CALL SvxRectCtlChildAccessibleContext::getImplementationId()
-{
- return css::uno::Sequence<sal_Int8>();
-}
-
-void SvxRectCtlChildAccessibleContext::CommitChange( const AccessibleEventObject& rEvent )
-{
- if (mnClientId)
- comphelper::AccessibleEventNotifier::addEvent( mnClientId, rEvent );
-}
-
-void SAL_CALL SvxRectCtlChildAccessibleContext::disposing()
-{
- if( !rBHelper.bDisposed )
- {
- ::osl::MutexGuard aGuard( maMutex );
-
- // Send a disposing to all listeners.
- if ( mnClientId )
- {
- comphelper::AccessibleEventNotifier::revokeClientNotifyDisposing( mnClientId, *this );
- mnClientId = 0;
- }
-
- mxParent.clear();
- }
-}
-
-void SvxRectCtlChildAccessibleContext::ThrowExceptionIfNotAlive()
-{
- if( rBHelper.bDisposed || rBHelper.bInDispose )
- throw lang::DisposedException();
-}
-
-tools::Rectangle SvxRectCtlChildAccessibleContext::GetBoundingBoxOnScreen()
-{
- ::osl::MutexGuard aGuard( maMutex );
-
- // no ThrowExceptionIfNotAlive() because its done in GetBoundingBox()
- tools::Rectangle aRect( GetBoundingBox() );
-
- return tools::Rectangle( mrParentWindow.OutputToScreenPixel( aRect.TopLeft() ), aRect.GetSize() );
-}
-
-tools::Rectangle const & SvxRectCtlChildAccessibleContext::GetBoundingBox()
-{
- // no guard necessary, because no one changes maBoundingBox after creating it
- ThrowExceptionIfNotAlive();
-
- return maBoundingBox;
-}
-
-void SvxRectCtlChildAccessibleContext::setStateChecked( bool bChecked )
-{
- if( mbIsChecked != bChecked )
- {
- mbIsChecked = bChecked;
-
- const Reference< XInterface > xSource( *this );
-
- Any aOld;
- Any aNew;
- Any& rMod = bChecked? aNew : aOld;
-
- //Send the STATE_CHANGED(Focused) event to accessible
- rMod <<= AccessibleStateType::FOCUSED;
- CommitChange( AccessibleEventObject( xSource, AccessibleEventId::STATE_CHANGED, aNew, aOld ) );
-
- rMod <<= AccessibleStateType::CHECKED;
-
- CommitChange( AccessibleEventObject( xSource, AccessibleEventId::STATE_CHANGED, aNew, aOld ) );
- }
-}
-
-void SvxRectCtlChildAccessibleContext::FireFocusEvent()
-{
- const Reference< XInterface > xSource( *this );
- Any aOld;
- Any aNew;
- aNew <<= AccessibleStateType::FOCUSED;
- CommitChange( AccessibleEventObject( xSource, AccessibleEventId::STATE_CHANGED, aNew, aOld ) );
-}
-
RectCtlChildAccessibleContext::RectCtlChildAccessibleContext(
const Reference<XAccessible>& rxParent,
const OUString& rName,
@@ -1362,7 +438,7 @@ sal_Int32 RectCtlChildAccessibleContext::getForeground( )
::SolarMutexGuard aSolarGuard;
::osl::MutexGuard aGuard( m_aMutex );
- //see SvxRectCtl::Paint
+ //see RectCtl::Paint
const StyleSettings& rStyles = Application::GetSettings().GetStyleSettings();
return sal_Int32(rStyles.GetLabelTextColor());
}
@@ -1372,7 +448,7 @@ sal_Int32 RectCtlChildAccessibleContext::getBackground( )
::SolarMutexGuard aSolarGuard;
::osl::MutexGuard aGuard( m_aMutex );
- //see SvxRectCtl::Paint
+ //see RectCtl::Paint
const StyleSettings& rStyles = Application::GetSettings().GetStyleSettings();
return sal_Int32(rStyles.GetDialogColor());
}
diff --git a/svx/source/dialog/dlgctrl.cxx b/svx/source/dialog/dlgctrl.cxx
index 85df3b8d1c1c..9c94f493ce17 100644
--- a/svx/source/dialog/dlgctrl.cxx
+++ b/svx/source/dialog/dlgctrl.cxx
@@ -60,556 +60,6 @@ using namespace ::com::sun::star::accessibility;
// Control for display and selection of the corner points and
// mid point of an object
-BitmapEx& SvxRectCtl::GetRectBitmap()
-{
- if( !pBitmap )
- InitRectBitmap();
-
- return *pBitmap;
-}
-
-SvxRectCtl::SvxRectCtl(vcl::Window* pParent, RectPoint eRpt,
- sal_uInt16 nBorder, sal_uInt16 nCircle)
- : Control(pParent, WB_BORDER | WB_TABSTOP)
- , nBorderWidth(nBorder)
- , nRadius(nCircle)
- , eDefRP(eRpt)
- , m_nState(CTL_STATE::NONE)
- , mbUpdateForeground(true)
- , mbUpdateBackground(true)
-{
- SetMapMode(MapMode(MapUnit::Map100thMM));
- Resize_Impl();
-}
-
-Size SvxRectCtl::GetOptimalSize() const
-{
- return LogicToPixel(Size(78, 39), MapMode(MapUnit::MapAppFont));
-}
-
-SvxRectCtl::~SvxRectCtl()
-{
- disposeOnce();
-}
-
-void SvxRectCtl::dispose()
-{
- pBitmap.reset();
-
- pAccContext.clear();
- Control::dispose();
-}
-
-void SvxRectCtl::Resize()
-{
- Resize_Impl();
- Control::Resize();
-}
-
-void SvxRectCtl::Resize_Impl()
-{
- aSize = GetOutputSize();
-
- aPtLT = Point( 0 + nBorderWidth, 0 + nBorderWidth );
- aPtMT = Point( aSize.Width() / 2, 0 + nBorderWidth );
- aPtRT = Point( aSize.Width() - nBorderWidth, 0 + nBorderWidth );
-
- aPtLM = Point( 0 + nBorderWidth, aSize.Height() / 2 );
- aPtMM = Point( aSize.Width() / 2, aSize.Height() / 2 );
- aPtRM = Point( aSize.Width() - nBorderWidth, aSize.Height() / 2 );
-
- aPtLB = Point( 0 + nBorderWidth, aSize.Height() - nBorderWidth );
- aPtMB = Point( aSize.Width() / 2, aSize.Height() - nBorderWidth );
- aPtRB = Point( aSize.Width() - nBorderWidth, aSize.Height() - nBorderWidth );
-
- Reset();
- MarkToResetSettings(true, true);
- Invalidate();
-}
-
-void SvxRectCtl::InitRectBitmap()
-{
- pBitmap.reset();
-
- const StyleSettings& rStyles = Application::GetSettings().GetStyleSettings();
- svtools::ColorConfig aColorConfig;
-
- pBitmap.reset(new BitmapEx(RID_SVXCTRL_RECTBTNS));
-
- // set bitmap-colors
- Color aColorAry1[7];
- Color aColorAry2[7];
- aColorAry1[0] = Color( 0xC0, 0xC0, 0xC0 ); // light-gray
- aColorAry1[1] = Color( 0xFF, 0xFF, 0x00 ); // yellow
- aColorAry1[2] = Color( 0xFF, 0xFF, 0xFF ); // white
- aColorAry1[3] = Color( 0x80, 0x80, 0x80 ); // dark-gray
- aColorAry1[4] = Color( 0x00, 0x00, 0x00 ); // black
- aColorAry1[5] = Color( 0x00, 0xFF, 0x00 ); // green
- aColorAry1[6] = Color( 0x00, 0x00, 0xFF ); // blue
- aColorAry2[0] = rStyles.GetDialogColor(); // background
- aColorAry2[1] = rStyles.GetWindowColor();
- aColorAry2[2] = rStyles.GetLightColor();
- aColorAry2[3] = rStyles.GetShadowColor();
- aColorAry2[4] = rStyles.GetDarkShadowColor();
- aColorAry2[5] = aColorConfig.GetColorValue( svtools::FONTCOLOR ).nColor;
- aColorAry2[6] = rStyles.GetDialogColor();
-
-#ifdef DBG_UTIL
- static bool bModify = false;
- bool& rModify = bModify;
- if( rModify )
- {
- static int n = 0;
- static sal_uInt8 r = 0xFF;
- static sal_uInt8 g = 0x00;
- static sal_uInt8 b = 0xFF;
- int& rn = n;
- sal_uInt8& rr = r;
- sal_uInt8& rg = g;
- sal_uInt8& rb = b;
- aColorAry2[ rn ] = Color( rr, rg, rb );
- }
-#endif
-
- pBitmap->Replace( aColorAry1, aColorAry2, 7 );
-}
-
-
-void SvxRectCtl::MarkToResetSettings(bool bUpdateForeground, bool bUpdateBackground)
-{
- mbUpdateForeground = bUpdateForeground;
- mbUpdateBackground = bUpdateBackground;
- pBitmap.reset(); // forces new creating of bitmap
-}
-
-void SvxRectCtl::InitSettings(vcl::RenderContext& rRenderContext)
-{
- const StyleSettings& rStyleSettings = Application::GetSettings().GetStyleSettings();
-
- if (mbUpdateForeground)
- {
- svtools::ColorConfig aColorConfig;
- Color aTextColor(aColorConfig.GetColorValue(svtools::FONTCOLOR).nColor);
-
- if (IsControlForeground())
- aTextColor = GetControlForeground();
- rRenderContext.SetTextColor(aTextColor);
- mbUpdateForeground = false;
- }
-
- if (mbUpdateBackground)
- {
- if (IsControlBackground())
- SetBackground(GetControlBackground());
- else
- SetBackground(rStyleSettings.GetWindowColor());
- mbUpdateBackground = false;
- }
-}
-
-// The clicked rectangle (3 x 3) is determined and the parent (dialog)
-// is notified that the item was changed
-void SvxRectCtl::MouseButtonDown( const MouseEvent& rMEvt )
-{
- Point aPtLast = aPtNew;
-
- aPtNew = GetApproxLogPtFromPixPt( rMEvt.GetPosPixel() );
-
- Invalidate( tools::Rectangle( aPtLast - Point( nRadius, nRadius ),
- aPtLast + Point( nRadius, nRadius ) ) );
- Invalidate( tools::Rectangle( aPtNew - Point( nRadius, nRadius ),
- aPtNew + Point( nRadius, nRadius ) ) );
- eRP = GetRPFromPoint( aPtNew );
-
- SetActualRP( eRP );
-
- vcl::Window *pTabPage = getNonLayoutParent(this);
- if (pTabPage && WindowType::TABPAGE == pTabPage->GetType())
- static_cast<SvxTabPage*>(pTabPage)->PointChanged( this, eRP );
-}
-
-void SvxRectCtl::KeyInput( const KeyEvent& rKeyEvt )
-{
- RectPoint eNewRP = eRP;
-
- switch( rKeyEvt.GetKeyCode().GetCode() )
- {
- case KEY_DOWN:
- {
- if( !(m_nState & CTL_STATE::NOVERT) )
- switch( eNewRP )
- {
- case RectPoint::LT: eNewRP = RectPoint::LM; break;
- case RectPoint::MT: eNewRP = RectPoint::MM; break;
- case RectPoint::RT: eNewRP = RectPoint::RM; break;
- case RectPoint::LM: eNewRP = RectPoint::LB; break;
- case RectPoint::MM: eNewRP = RectPoint::MB; break;
- case RectPoint::RM: eNewRP = RectPoint::RB; break;
- default: ; //prevent warning
- }
- }
- break;
- case KEY_UP:
- {
- if( !(m_nState & CTL_STATE::NOVERT) )
- switch( eNewRP )
- {
- case RectPoint::LM: eNewRP = RectPoint::LT; break;
- case RectPoint::MM: eNewRP = RectPoint::MT; break;
- case RectPoint::RM: eNewRP = RectPoint::RT; break;
- case RectPoint::LB: eNewRP = RectPoint::LM; break;
- case RectPoint::MB: eNewRP = RectPoint::MM; break;
- case RectPoint::RB: eNewRP = RectPoint::RM; break;
- default: ; //prevent warning
- }
- }
- break;
- case KEY_LEFT:
- {
- if( !(m_nState & CTL_STATE::NOHORZ) )
- switch( eNewRP )
- {
- case RectPoint::MT: eNewRP = RectPoint::LT; break;
- case RectPoint::RT: eNewRP = RectPoint::MT; break;
- case RectPoint::MM: eNewRP = RectPoint::LM; break;
- case RectPoint::RM: eNewRP = RectPoint::MM; break;
- case RectPoint::MB: eNewRP = RectPoint::LB; break;
- case RectPoint::RB: eNewRP = RectPoint::MB; break;
- default: ; //prevent warning
- }
- }
- break;
- case KEY_RIGHT:
- {
- if( !(m_nState & CTL_STATE::NOHORZ) )
- switch( eNewRP )
- {
- case RectPoint::LT: eNewRP = RectPoint::MT; break;
- case RectPoint::MT: eNewRP = RectPoint::RT; break;
- case RectPoint::LM: eNewRP = RectPoint::MM; break;
- case RectPoint::MM: eNewRP = RectPoint::RM; break;
- case RectPoint::LB: eNewRP = RectPoint::MB; break;
- case RectPoint::MB: eNewRP = RectPoint::RB; break;
- default: ; //prevent warning
- }
- }
- break;
- default:
- Control::KeyInput( rKeyEvt );
- return;
- }
- if( eNewRP != eRP )
- {
- SetActualRP( eNewRP );
-
- vcl::Window *pTabPage = getNonLayoutParent(this);
- if (pTabPage && WindowType::TABPAGE == pTabPage->GetType())
- static_cast<SvxTabPage*>(pTabPage)->PointChanged(this, eRP);
-
- SetFocusRect();
- }
-}
-
-
-void SvxRectCtl::StateChanged( StateChangedType nType )
-{
- if ( nType == StateChangedType::ControlForeground )
- MarkToResetSettings(true, false);
- else if ( nType == StateChangedType::ControlBackground )
- MarkToResetSettings(false, true);
-
- Window::StateChanged( nType );
-}
-
-
-void SvxRectCtl::DataChanged( const DataChangedEvent& rDCEvt )
-{
- if ( ( rDCEvt.GetType() == DataChangedEventType::SETTINGS ) && ( rDCEvt.GetFlags() & AllSettingsFlags::STYLE ) )
- MarkToResetSettings(true, true);
- else
- Window::DataChanged( rDCEvt );
-}
-
-// the control (rectangle with 9 circles)
-void SvxRectCtl::Paint(vcl::RenderContext& rRenderContext, const tools::Rectangle&)
-{
- InitSettings(rRenderContext);
-
- Point aPtDiff(PixelToLogic(Point(1, 1)));
-
- const StyleSettings& rStyles = Application::GetSettings().GetStyleSettings();
-
- rRenderContext.SetLineColor(rStyles.GetDialogColor());
- rRenderContext.SetFillColor(rStyles.GetDialogColor());
- rRenderContext.DrawRect(tools::Rectangle(Point(0,0), rRenderContext.GetOutputSize()));
-
- if (IsEnabled())
- rRenderContext.SetLineColor(rStyles.GetLabelTextColor());
- else
- rRenderContext.SetLineColor(rStyles.GetShadowColor());
-
- rRenderContext.SetFillColor();
-
- if (!IsEnabled())
- {
- Color aOldCol = rRenderContext.GetLineColor();
- rRenderContext.SetLineColor(rStyles.GetLightColor());
- rRenderContext.DrawRect(tools::Rectangle(aPtLT + aPtDiff, aPtRB + aPtDiff));
- rRenderContext.SetLineColor(aOldCol);
- }
- rRenderContext.DrawRect(tools::Rectangle(aPtLT, aPtRB));
-
- rRenderContext.SetFillColor(rRenderContext.GetBackground().GetColor());
-
- Size aBtnSize(11, 11);
- Size aDstBtnSize(PixelToLogic(aBtnSize));
- Point aToCenter(aDstBtnSize.Width() >> 1, aDstBtnSize.Height() >> 1);
- Point aBtnPnt1(IsEnabled() ? 0 : 22, 0);
- Point aBtnPnt2(11, 0);
- Point aBtnPnt3(22, 0);
-
- bool bNoHorz = bool(m_nState & CTL_STATE::NOHORZ);
- bool bNoVert = bool(m_nState & CTL_STATE::NOVERT);
-
- BitmapEx& rBitmap = GetRectBitmap();
-
- rRenderContext.DrawBitmap(aPtLT - aToCenter, aDstBtnSize, (bNoHorz || bNoVert)?aBtnPnt3:aBtnPnt1, aBtnSize, rBitmap.GetBitmap());
- rRenderContext.DrawBitmap(aPtMT - aToCenter, aDstBtnSize, bNoVert?aBtnPnt3:aBtnPnt1, aBtnSize, rBitmap.GetBitmap());
- rRenderContext.DrawBitmap(aPtRT - aToCenter, aDstBtnSize, (bNoHorz || bNoVert)?aBtnPnt3:aBtnPnt1, aBtnSize, rBitmap.GetBitmap());
- rRenderContext.DrawBitmap(aPtLM - aToCenter, aDstBtnSize, bNoHorz?aBtnPnt3:aBtnPnt1, aBtnSize, rBitmap.GetBitmap());
-
- // Center for rectangle and line
- rRenderContext.DrawBitmap(aPtMM - aToCenter, aDstBtnSize, aBtnPnt1, aBtnSize, rBitmap.GetBitmap());
-
- rRenderContext.DrawBitmap(aPtRM - aToCenter, aDstBtnSize, bNoHorz?aBtnPnt3:aBtnPnt1, aBtnSize, rBitmap.GetBitmap());
- rRenderContext.DrawBitmap(aPtLB - aToCenter, aDstBtnSize, (bNoHorz || bNoVert)?aBtnPnt3:aBtnPnt1, aBtnSize, rBitmap.GetBitmap());
- rRenderContext.DrawBitmap(aPtMB - aToCenter, aDstBtnSize, bNoVert?aBtnPnt3:aBtnPnt1, aBtnSize, rBitmap.GetBitmap());
- rRenderContext.DrawBitmap(aPtRB - aToCenter, aDstBtnSize, (bNoHorz || bNoVert)?aBtnPnt3:aBtnPnt1, aBtnSize, rBitmap.GetBitmap());
-
- // draw active button, avoid center pos for angle
- if (IsEnabled())
- {
- Point aCenterPt(aPtNew);
- aCenterPt -= aToCenter;
-
- rRenderContext.DrawBitmap(aCenterPt, aDstBtnSize, aBtnPnt2, aBtnSize, rBitmap.GetBitmap());
- }
-}
-
-// Convert RectPoint Point
-
-const Point& SvxRectCtl::GetPointFromRP( RectPoint _eRP) const
-{
- switch( _eRP )
- {
- case RectPoint::LT: return aPtLT;
- case RectPoint::MT: return aPtMT;
- case RectPoint::RT: return aPtRT;
- case RectPoint::LM: return aPtLM;
- case RectPoint::MM: return aPtMM;
- case RectPoint::RM: return aPtRM;
- case RectPoint::LB: return aPtLB;
- case RectPoint::MB: return aPtMB;
- case RectPoint::RB: return aPtRB;
- }
- return aPtMM; // default
-}
-
-
-void SvxRectCtl::SetFocusRect()
-{
- HideFocus();
-
- ShowFocus( CalculateFocusRectangle() );
-}
-
-Point SvxRectCtl::SetActualRPWithoutInvalidate( RectPoint eNewRP )
-{
- Point aPtLast = aPtNew;
- aPtNew = GetPointFromRP( eNewRP );
-
- if( m_nState & CTL_STATE::NOHORZ )
- aPtNew.setX( aPtMM.X() );
-
- if( m_nState & CTL_STATE::NOVERT )
- aPtNew.setY( aPtMM.Y() );
-
- // fdo#74751 this fix reverse base point on RTL UI.
- bool bRTL = AllSettings::GetLayoutRTL();
- eNewRP = GetRPFromPoint( aPtNew, bRTL );
-
- eDefRP = eNewRP;
- eRP = eNewRP;
-
- return aPtLast;
-}
-
-void SvxRectCtl::GetFocus()
-{
- SetFocusRect();
- // Send the accessible focused event
- Control::GetFocus();
- // Send accessibility event.
- if(pAccContext.is())
- {
- pAccContext->FireChildFocus(GetActualRP());
- }
-}
-
-
-void SvxRectCtl::LoseFocus()
-{
- HideFocus();
-}
-
-
-Point SvxRectCtl::GetApproxLogPtFromPixPt( const Point& rPt ) const
-{
- Point aPt = PixelToLogic( rPt );
- long x;
- long y;
-
- if( !( m_nState & CTL_STATE::NOHORZ ) )
- {
- if( aPt.X() < aSize.Width() / 3 )
- x = aPtLT.X();
- else if( aPt.X() < aSize.Width() * 2 / 3 )
- x = aPtMM.X();
- else
- x = aPtRB.X();
- }
- else
- x = aPtMM.X();
-
- if( !( m_nState & CTL_STATE::NOVERT ) )
- {
- if( aPt.Y() < aSize.Height() / 3 )
- y = aPtLT.Y();
- else if( aPt.Y() < aSize.Height() * 2 / 3 )
- y = aPtMM.Y();
- else
- y = aPtRB.Y();
- }
- else
- y = aPtMM.Y();
-
- return Point( x, y );
-}
-
-
-// Converts Point in RectPoint
-
-RectPoint SvxRectCtl::GetRPFromPoint( Point aPt, bool bRTL ) const
-{
- RectPoint rPoint = RectPoint::MM; // default
-
- if ( aPt == aPtLT) rPoint = bRTL ? RectPoint::RT : RectPoint::LT;
- else if( aPt == aPtMT) rPoint = RectPoint::MT;
- else if( aPt == aPtRT) rPoint = bRTL ? RectPoint::LT : RectPoint::RT;
- else if( aPt == aPtLM) rPoint = bRTL ? RectPoint::RM : RectPoint::LM;
- else if( aPt == aPtRM) rPoint = bRTL ? RectPoint::LM : RectPoint::RM;
- else if( aPt == aPtLB) rPoint = bRTL ? RectPoint::RB : RectPoint::LB;
- else if( aPt == aPtMB) rPoint = RectPoint::MB;
- else if( aPt == aPtRB) rPoint = bRTL ? RectPoint::LB : RectPoint::RB;
-
- return rPoint;
-}
-
-// Resets to the original state of the control
-
-void SvxRectCtl::Reset()
-{
- aPtNew = GetPointFromRP( eDefRP );
- eRP = eDefRP;
- Invalidate();
-}
-
-// Returns the currently selected RectPoint
-
-
-void SvxRectCtl::SetActualRP( RectPoint eNewRP )
-{
- Point aPtLast( SetActualRPWithoutInvalidate( eNewRP ) );
-
- Invalidate( tools::Rectangle( aPtLast - Point( nRadius, nRadius ), aPtLast + Point( nRadius, nRadius ) ) );
- Invalidate( tools::Rectangle( aPtNew - Point( nRadius, nRadius ), aPtNew + Point( nRadius, nRadius ) ) );
-
- // notify accessibility object about change
- if( pAccContext.is() )
- pAccContext->selectChild( eNewRP /* MT, bFireFocus */ );
-}
-
-void SvxRectCtl::SetState( CTL_STATE nState )
-{
- m_nState = nState;
-
- Point aPtLast( GetPointFromRP( eRP ) );
- Point _aPtNew( aPtLast );
-
- if( m_nState & CTL_STATE::NOHORZ )
- _aPtNew.setX( aPtMM.X() );
-
- if( m_nState & CTL_STATE::NOVERT)
- _aPtNew.setY( aPtMM.Y() );
-
- eRP = GetRPFromPoint( _aPtNew );
- Invalidate();
-
- vcl::Window *pTabPage = getNonLayoutParent(this);
- if (pTabPage && WindowType::TABPAGE == pTabPage->GetType())
- static_cast<SvxTabPage*>(pTabPage)->PointChanged(this, eRP);
-}
-
-tools::Rectangle SvxRectCtl::CalculateFocusRectangle() const
-{
- Size aDstBtnSize( PixelToLogic( Size( 15, 15 ) ) );
- return tools::Rectangle( aPtNew - Point( aDstBtnSize.Width() >> 1, aDstBtnSize.Height() >> 1 ), aDstBtnSize );
-}
-
-tools::Rectangle SvxRectCtl::CalculateFocusRectangle( RectPoint eRectPoint ) const
-{
- tools::Rectangle aRet;
- RectPoint eOldRectPoint = GetActualRP();
-
- if( eOldRectPoint == eRectPoint )
- aRet = CalculateFocusRectangle();
- else
- {
- SvxRectCtl* pThis = const_cast< SvxRectCtl* >( this );
-
- pThis->SetActualRPWithoutInvalidate( eRectPoint ); // no invalidation because it's only temporary!
- aRet = CalculateFocusRectangle();
-
- pThis->SetActualRPWithoutInvalidate( eOldRectPoint ); // no invalidation because nothing has changed!
- }
-
- return aRet;
-}
-
-Reference< XAccessible > SvxRectCtl::CreateAccessible()
-{
- vcl::Window* pParent = GetAccessibleParentWindow();
-
- DBG_ASSERT( pParent, "-SvxRectCtl::CreateAccessible(): No Parent!" );
-
- Reference< XAccessible > xAccParent = pParent->GetAccessible();
- if( xAccParent.is() )
- {
- pAccContext = new SvxRectCtlAccessibleContext( xAccParent, *this );
-
- SetActualRP( GetActualRP() );
-
- return pAccContext.get();
- }
- else
- return Reference< XAccessible >();
-}
-
-RectPoint SvxRectCtl::GetApproxRPFromPixPt( const css::awt::Point& r ) const
-{
- return GetRPFromPoint(GetApproxLogPtFromPixPt(Point(r.X, r.Y )));
-}
-
BitmapEx& RectCtl::GetRectBitmap()
{
if( !pBitmap )
@@ -877,7 +327,7 @@ void RectCtl::Paint(vcl::RenderContext& rRenderContext, const tools::Rectangle&)
BitmapEx& rBitmap = GetRectBitmap();
- // CompletelyDisabled() added to have a disabled state for SvxRectCtl
+ // CompletelyDisabled() added to have a disabled state for RectCtl
if (IsCompletelyDisabled())
{
rRenderContext.DrawBitmap(aPtLT - aToCenter, aDstBtnSize, aBtnPnt3, aBtnSize, rBitmap.GetBitmap());
@@ -907,7 +357,7 @@ void RectCtl::Paint(vcl::RenderContext& rRenderContext, const tools::Rectangle&)
}
// draw active button, avoid center pos for angle
- // CompletelyDisabled() added to have a disabled state for SvxRectCtl
+ // CompletelyDisabled() added to have a disabled state for RectCtl
if (!IsCompletelyDisabled())
{
if (IsEnabled())
diff --git a/svx/source/inc/svxrectctaccessiblecontext.hxx b/svx/source/inc/svxrectctaccessiblecontext.hxx
index 6e3fb5b509bd..f5648c3e319e 100644
--- a/svx/source/inc/svxrectctaccessiblecontext.hxx
+++ b/svx/source/inc/svxrectctaccessiblecontext.hxx
@@ -58,214 +58,9 @@ namespace com { namespace sun { namespace star { namespace awt {
namespace tools { class Rectangle; }
class RectCtl;
-class SvxRectCtl;
class RectCtlChildAccessibleContext;
-class SvxRectCtlChildAccessibleContext;
namespace vcl { class Window; }
-typedef ::cppu::WeakAggComponentImplHelper6<
- css::accessibility::XAccessible,
- css::accessibility::XAccessibleComponent,
- css::accessibility::XAccessibleContext,
- css::accessibility::XAccessibleEventBroadcaster,
- css::accessibility::XAccessibleSelection,
- css::lang::XServiceInfo >
- SvxRectCtlAccessibleContext_Base;
-
-class SvxRectCtlAccessibleContext final : public ::cppu::BaseMutex, public SvxRectCtlAccessibleContext_Base
-{
-public:
- // internal
- SvxRectCtlAccessibleContext(
- const css::uno::Reference< css::accessibility::XAccessible>& rxParent,
- SvxRectCtl& rRepresentation );
-
- // XAccessible
- virtual css::uno::Reference< css::accessibility::XAccessibleContext> SAL_CALL
- getAccessibleContext() override;
-
- // XAccessibleComponent
- virtual sal_Bool SAL_CALL
- containsPoint( const css::awt::Point& rPoint ) override;
-
- virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL
- getAccessibleAtPoint( const css::awt::Point& rPoint ) override;
-
- virtual css::awt::Rectangle SAL_CALL
- getBounds() override;
-
- virtual css::awt::Point SAL_CALL
- getLocation() override;
-
- virtual css::awt::Point SAL_CALL
- getLocationOnScreen() override;
-
- virtual css::awt::Size SAL_CALL
- getSize() override;
-
- /// @throws css::uno::RuntimeException
- bool
- isVisible();
-
- virtual void SAL_CALL
- grabFocus() override;
-
- virtual sal_Int32 SAL_CALL
- getForeground( ) override;
- virtual sal_Int32 SAL_CALL
- getBackground( ) override;
-
- // XAccessibleContext
- virtual sal_Int32 SAL_CALL
- getAccessibleChildCount() override;
-
- virtual css::uno::Reference< css::accessibility::XAccessible> SAL_CALL
- getAccessibleChild( sal_Int32 nIndex ) override;
-
- virtual css::uno::Reference< css::accessibility::XAccessible> SAL_CALL
- getAccessibleParent() override;
-
- virtual sal_Int32 SAL_CALL
- getAccessibleIndexInParent() override;
-
- virtual sal_Int16 SAL_CALL
- getAccessibleRole() override;
-
- virtual OUString SAL_CALL
- getAccessibleDescription() override;
-
- virtual OUString SAL_CALL
- getAccessibleName() override;
-
- virtual css::uno::Reference< css::accessibility::XAccessibleRelationSet > SAL_CALL
- getAccessibleRelationSet() override;
-
- virtual css::uno::Reference< css::accessibility::XAccessibleStateSet > SAL_CALL
- getAccessibleStateSet() override;
-
- virtual css::lang::Locale SAL_CALL
- getLocale() override;
-
- // XAccessibleEventBroadcaster
- virtual void SAL_CALL
- addAccessibleEventListener(
- const css::uno::Reference< css::accessibility::XAccessibleEventListener >& xListener ) override;
-
- virtual void SAL_CALL
- removeAccessibleEventListener(
- const css::uno::Reference< css::accessibility::XAccessibleEventListener >& xListener ) override;
-
- // XServiceInfo
- virtual OUString SAL_CALL
- getImplementationName() override;
-
- virtual sal_Bool SAL_CALL
- supportsService( const OUString& sServiceName ) override;
-
- virtual css::uno::Sequence< OUString> SAL_CALL
- getSupportedServiceNames() override;
-
- // XTypeProvider
- virtual css::uno::Sequence<sal_Int8> SAL_CALL
- getImplementationId() override;
-
- // XAccessibleSelection
- virtual void SAL_CALL
- selectAccessibleChild( sal_Int32 nChildIndex ) override;
-
- virtual sal_Bool SAL_CALL
- isAccessibleChildSelected( sal_Int32 nChildIndex ) override;
-
- virtual void SAL_CALL
- clearAccessibleSelection() override;
-
- virtual void SAL_CALL
- selectAllAccessibleChildren() override;
-
- virtual sal_Int32 SAL_CALL
- getSelectedAccessibleChildCount() override;
-
- virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL
- getSelectedAccessibleChild( sal_Int32 nSelectedChildIndex ) override;
-
- virtual void SAL_CALL
- deselectAccessibleChild( sal_Int32 nSelectedChildIndex ) override;
-
- /** Selects a new child by point.
-
- <p>If the child was not selected before, the state of the child will
- be updated. If the point is not invalid, the index will internally set to NOCHILDSELECTED</p>
-
- @param eButton
- Button which belongs to the child which should be selected.
- */
- void selectChild( RectPoint ePoint );
- void FireChildFocus( RectPoint eButton );
-
-private:
- virtual ~SvxRectCtlAccessibleContext() override;
-
- // internals
- /// @throws css::lang::IndexOutOfBoundsException
- void checkChildIndex( long nIndexOfChild );
-
- /** Selects a new child by index.
-
- <p>If the child was not selected before, the state of the child will
- be updated. If the index is invalid, the index will internally set to NOCHILDSELECTED</p>
-
- @param nIndexOfChild
- Index of the new child which should be selected.
- */
- void selectChild( long nIndexOfChild );
-
- /// @Return the object's current bounding box relative to the desktop.
- ///
- /// @throws css::uno::RuntimeException
- tools::Rectangle GetBoundingBoxOnScreen();
-
- /// @Return the object's current bounding box relative to the parent object.
- ///
- /// @throws css::uno::RuntimeException
- tools::Rectangle GetBoundingBox();
-
- virtual void SAL_CALL disposing() override;
-
- /// @returns true if it's disposed or in disposing
- bool IsAlive() const
- {
- return !rBHelper.bDisposed && !rBHelper.bInDispose;
- }
-
- /// @throws css::lang::DisposedException if it's not alive
- void ThrowExceptionIfNotAlive();
-
- /** Description of this object. This is not a constant because it can
- be set from the outside.
- */
- OUString msDescription;
-
- /** Name of this object.
- */
- OUString msName;
-
- /// Reference to the parent object.
- css::uno::Reference< css::accessibility::XAccessible >
- mxParent;
-
- /// pointer to internal representation
- VclPtr<SvxRectCtl> mpRepr;
-
- /// array for all possible children
- std::vector<rtl::Reference<SvxRectCtlChildAccessibleContext>> mvChildren;
-
- /// client id in the AccessibleEventNotifier queue
- sal_uInt32 mnClientId;
-
- /// actual selected child
- long mnSelectedChild;
-};
-
typedef ::cppu::ImplHelper1<css::accessibility::XAccessible> OAccessibleHelper_Base;
class RectCtlAccessibleContext final : public ::comphelper::OAccessibleSelectionHelper,
@@ -354,192 +149,6 @@ private:
long mnSelectedChild;
};
-typedef ::cppu::WeakAggComponentImplHelper7<
- css::accessibility::XAccessible,
- css::accessibility::XAccessibleComponent,
- css::accessibility::XAccessibleContext,
- css::accessibility::XAccessibleEventBroadcaster,
- css::accessibility::XAccessibleValue,
- css::accessibility::XAccessibleAction,
- css::lang::XServiceInfo >
- SvxRectCtlChildAccessibleContext_Base;
-
-class SvxRectCtlChildAccessibleContext : public SvxRectCtlChildAccessibleContext_Base
-{
-public:
- SvxRectCtlChildAccessibleContext(
- const css::uno::Reference< css::accessibility::XAccessible>& rxParent,
- const vcl::Window& rParentWindow,
- const OUString& rName, const OUString& rDescription,
- const tools::Rectangle& rBoundingBox,
- long nIndexInParent );
-protected:
- virtual ~SvxRectCtlChildAccessibleContext() override;
-public:
- // XAccessible
- virtual css::uno::Reference< css::accessibility::XAccessibleContext> SAL_CALL
- getAccessibleContext() override;
-
- // XAccessibleComponent
- virtual sal_Bool SAL_CALL
- containsPoint( const css::awt::Point& rPoint ) override;
-
- virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL
- getAccessibleAtPoint( const css::awt::Point& rPoint ) override;
-
- virtual css::awt::Rectangle SAL_CALL
- getBounds() override;
-
- virtual css::awt::Point SAL_CALL
- getLocation() override;
-
- virtual css::awt::Point SAL_CALL
- getLocationOnScreen() override;
-
- virtual css::awt::Size SAL_CALL
- getSize() override;
-
- virtual void SAL_CALL
- grabFocus() override;
-
- virtual sal_Int32 SAL_CALL
- getForeground( ) override;
- virtual sal_Int32 SAL_CALL
- getBackground( ) override;
-
- // XAccessibleContext
- virtual sal_Int32 SAL_CALL
- getAccessibleChildCount() override;
-
- virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL
- getAccessibleChild( sal_Int32 nIndex ) override;
-
- virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL
- getAccessibleParent() override;
-
- virtual sal_Int32 SAL_CALL
- getAccessibleIndexInParent() override;
-
- virtual sal_Int16 SAL_CALL
- getAccessibleRole() override;
-
- virtual OUString SAL_CALL
- getAccessibleDescription() override;
-
- virtual OUString SAL_CALL
- getAccessibleName() override;
-
- virtual css::uno::Reference< css::accessibility::XAccessibleRelationSet > SAL_CALL
- getAccessibleRelationSet() override;
-
- virtual css::uno::Reference< css::accessibility::XAccessibleStateSet > SAL_CALL
- getAccessibleStateSet() override;
-
- virtual css::lang::Locale SAL_CALL
- getLocale() override;
-
- // XAccessibleEventBroadcaster
- virtual void SAL_CALL
- addAccessibleEventListener(
- const css::uno::Reference< css::accessibility::XAccessibleEventListener >& xListener ) override;
-
- virtual void SAL_CALL
- removeAccessibleEventListener(
- const css::uno::Reference< css::accessibility::XAccessibleEventListener >& xListener ) override;
-
- // XAccessibleValue
- virtual css::uno::Any SAL_CALL
- getCurrentValue() override;
-
- virtual sal_Bool SAL_CALL
- setCurrentValue( const css::uno::Any& aNumber ) override;
-
- virtual css::uno::Any SAL_CALL
- getMaximumValue() override;
-
- virtual css::uno::Any SAL_CALL
- getMinimumValue() override;
-
- // XAccessibleAction
- virtual sal_Int32 SAL_CALL getAccessibleActionCount( ) override;
- virtual sal_Bool SAL_CALL doAccessibleAction ( sal_Int32 nIndex ) override;
- virtual ::rtl::OUString SAL_CALL getAccessibleActionDescription ( sal_Int32 nIndex ) override;
- virtual css::uno::Reference< css::accessibility::XAccessibleKeyBinding > SAL_CALL getAccessibleActionKeyBinding( sal_Int32 nIndex ) override;
- // XServiceInfo
- virtual OUString SAL_CALL
- getImplementationName() override;
-
- virtual sal_Bool SAL_CALL
- supportsService( const OUString& sServiceName ) override;
-
- virtual css::uno::Sequence< OUString> SAL_CALL
- getSupportedServiceNames() override;
-
- // XTypeProvider
- virtual css::uno::Sequence<sal_Int8> SAL_CALL
- getImplementationId() override;
-
- // internal
- /// Sets the checked status
- void setStateChecked(bool bChecked);
- void FireFocusEvent();
-
-protected:
- /// @throws css::uno::RuntimeException
- tools::Rectangle GetBoundingBoxOnScreen();
-
- /// @throws css::uno::RuntimeException
- tools::Rectangle const & GetBoundingBox();
-
- void CommitChange( const css::accessibility::AccessibleEventObject& rEvent );
-
- virtual void SAL_CALL disposing() override;
-
- /// @returns true if it's disposed or in disposing
- bool IsAlive() const
- {
- return !rBHelper.bDisposed && !rBHelper.bInDispose;
- }
-
- /// @throws css::lang::DisposedException if it's not alive
- void ThrowExceptionIfNotAlive();
-
- /// Mutex guarding this object.
- ::osl::Mutex maMutex;
-
-private:
-
- /** Description of this object. This is not a constant because it can
- be set from the outside. Furthermore, it changes according to the
- draw page's display mode.
- */
- OUString msDescription;
-
- /** Name of this object. It changes according the draw page's
- display mode.
- */
- OUString msName;
-
- /// Reference to the parent object.
- css::uno::Reference< css::accessibility::XAccessible >
- mxParent;
-
- /// Bounding box
- tools::Rectangle maBoundingBox;
-
- /// window of parent
- const vcl::Window& mrParentWindow;
-
- /// client id in the AccessibleEventNotifier queue
- sal_uInt32 mnClientId;
-
- /// index of child in parent
- long mnIndexInParent;
-
- /// Indicates, if object is checked
- bool mbIsChecked;
-};
-
typedef ::cppu::ImplHelper3 < css::accessibility::XAccessible,
css::accessibility::XAccessibleValue,
css::accessibility::XAccessibleAction
More information about the Libreoffice-commits
mailing list