diff options
-rw-r--r-- | vbahelper/source/msforms/vbacontrol.cxx | 16 | ||||
-rw-r--r-- | vbahelper/source/vbahelper/vbacommandbars.cxx | 4 |
2 files changed, 20 insertions, 0 deletions
diff --git a/vbahelper/source/msforms/vbacontrol.cxx b/vbahelper/source/msforms/vbacontrol.cxx index a5cf70e807c2..975fb9955a8a 100644 --- a/vbahelper/source/msforms/vbacontrol.cxx +++ b/vbahelper/source/msforms/vbacontrol.cxx @@ -204,8 +204,17 @@ void SAL_CALL ScVbaControl::setEnabled( sal_Bool bVisible ) throw (uno::RuntimeE sal_Bool SAL_CALL ScVbaControl::getVisible() throw (uno::RuntimeException) { sal_Bool bVisible( sal_True ); + uno::Reference< drawing::XControlShape > xControlShape( m_xControl, uno::UNO_QUERY ); m_xProps->getPropertyValue (rtl::OUString( "EnableVisible" )) >>= bVisible; + if ( xControlShape.is() ) + { + bool bEnableVisible = bVisible; + uno::Reference< beans::XPropertySet > xProps( m_xControl, uno::UNO_QUERY_THROW ); + xProps->getPropertyValue + (rtl::OUString( "Visible" )) >>= bVisible; + bVisible = bVisible && bEnableVisible; + } return bVisible; } @@ -214,6 +223,13 @@ void SAL_CALL ScVbaControl::setVisible( sal_Bool bVisible ) throw (uno::RuntimeE uno::Any aValue( bVisible ); m_xProps->setPropertyValue (rtl::OUString( "EnableVisible" ), aValue); + uno::Reference< drawing::XControlShape > xControlShape( m_xControl, uno::UNO_QUERY ); + if ( xControlShape.is() ) + { + uno::Reference< beans::XPropertySet > xProps( m_xControl, uno::UNO_QUERY_THROW ); + xProps->setPropertyValue + (rtl::OUString( "Visible" ), aValue); + } } double SAL_CALL ScVbaControl::getHeight() throw (uno::RuntimeException) { diff --git a/vbahelper/source/vbahelper/vbacommandbars.cxx b/vbahelper/source/vbahelper/vbacommandbars.cxx index d07f2e39981d..dbd1fc775d1d 100644 --- a/vbahelper/source/vbahelper/vbacommandbars.cxx +++ b/vbahelper/source/vbahelper/vbacommandbars.cxx @@ -72,6 +72,10 @@ public: { uno::Reference< container::XIndexAccess > xCBarSetting = m_pCBarHelper->getSettings( sResourceUrl ); uno::Reference< XCommandBar > xCommandBar( new ScVbaCommandBar( m_xParent, m_xContext, m_pCBarHelper, xCBarSetting, sResourceUrl, sal_False, sal_False ) ); + // Strange, shouldn't the Enumeration support match/share the + // iteration code? ( e.g. ScVbaCommandBars::Item(...) ) + // and we at least should return here ( something ) it seems + return uno::makeAny( xCommandBar ); } else return nextElement(); |