ooo-build r14757 - in trunk: . patches/dev300 patches/vba
- From: noelpwer svn gnome org
- To: svn-commits-list gnome org
- Subject: ooo-build r14757 - in trunk: . patches/dev300 patches/vba
- Date: Fri, 5 Dec 2008 16:28:07 +0000 (UTC)
Author: noelpwer
Date: Fri Dec 5 16:28:06 2008
New Revision: 14757
URL: http://svn.gnome.org/viewvc/ooo-build?rev=14757&view=rev
Log:
2008-12-05 Noel Power <noel power novell com>
* patches/dev300/apply: enable radio button grouping stuff
* patches/dev300/forms-radio-button-group-names.diff:
* patches/dev300/dialog-groupname-persist.diff:
* patches/dev300/xl-import-formradiobutton.diff:
* patches/vba/vba-userform-geometry-tweak.diff:
* patches/vba/enhanced-form-userform-controls.diff:
Modified:
trunk/ChangeLog
trunk/patches/dev300/apply
trunk/patches/dev300/dialog-groupname-persist.diff
trunk/patches/dev300/forms-radio-button-group-names.diff
trunk/patches/dev300/xl-import-formradiobutton.diff
trunk/patches/vba/enhanced-form-userform-controls.diff
trunk/patches/vba/vba-userform-geometry-tweak.diff
Modified: trunk/patches/dev300/apply
==============================================================================
--- trunk/patches/dev300/apply (original)
+++ trunk/patches/dev300/apply Fri Dec 5 16:28:06 2008
@@ -536,8 +536,7 @@
# FIXME 2008-11-26: partly applies to dev300-m35 with several "fuzz 2", partly not at all
#xmloff-field-patch.diff, flr, n#248354
-[ RadioButtons > dev300-m99 ]
-# FIXME 2008-11-26: these don't apply in dev300-m35
+[ RadioButtons ]
# Add a GroupName property to RadioButtons so that RadioButtons don't need to
# share the same name to be part of the same group.
forms-radio-button-group-names.diff, n#310052, i#30823, jonp
Modified: trunk/patches/dev300/dialog-groupname-persist.diff
==============================================================================
--- trunk/patches/dev300/dialog-groupname-persist.diff (original)
+++ trunk/patches/dev300/dialog-groupname-persist.diff Fri Dec 5 16:28:06 2008
@@ -1,8 +1,8 @@
diff --git svx/inc/svx/msocximex.hxx svx/inc/svx/msocximex.hxx
-index f3bda14..c94eaeb 100644
+index 2d0827f..733304d 100644
--- svx/inc/svx/msocximex.hxx
+++ svx/inc/svx/msocximex.hxx
-@@ -290,6 +290,7 @@ public:
+@@ -289,6 +289,7 @@ public:
sal_uInt16 mnTabPos;
UniString sName;
UniString msToolTip;
@@ -74,10 +74,10 @@
com::sun::star::container::XNameContainer > mxParent;
std::vector<OCX_Control*> mpControls;
diff --git svx/source/msfilter/msocximex.cxx svx/source/msfilter/msocximex.cxx
-index ef7ca77..530a5ce 100644
+index 2aba883..617caf8 100644
--- svx/source/msfilter/msocximex.cxx
+++ svx/source/msfilter/msocximex.cxx
-@@ -908,176 +908,6 @@ class ContainerRecordReaderFac
+@@ -909,176 +909,6 @@ class ContainerRecordReaderFac
// ============================================================================
@@ -254,11 +254,11 @@
class OCX_UserFormLabel : public OCX_Label
{
public:
-@@ -1854,9 +1684,27 @@ sal_Bool OCX_OptionButton::Import(com::sun::star::uno::Reference<
- aTmp <<= ::com::sun::star::style::VerticalAlignment_MIDDLE;
- rPropSet->setPropertyValue( WW8_ASCII2STR("VerticalAlign"), aTmp );
-
-- if ( pGroupName )
+@@ -1913,7 +1743,37 @@ sal_Bool OCX_OptionButton::Import(com::sun::star::uno::Reference<
+ INT16 nTmp = pValue[0]-0x30;
+ aTmp <<= nTmp;
+ rPropSet->setPropertyValue( WW8_ASCII2STR("DefaultState"), aTmp);
+ }
+ // If this is a dialog control then we need to set a groupname *always*
+ rtl::OUString sGroupName = lclCreateOUString( pGroupName, nGroupNameLen );
+ if ( GetInDialog() ) // Userform/Dialog
@@ -278,13 +278,21 @@
+ sGroupName = sParentName.concat( C2U( ":" ) ).concat( sGroupName );
+ }
+ if ( sGroupName.getLength() > 0 )
- {
-- aTmp <<= lclCreateOUString( pGroupName, nGroupNameLen );
-+ aTmp <<= sGroupName;
- rPropSet->setPropertyValue( WW8_ASCII2STR("GroupName"), aTmp);
- }
- uno::Reference< frame::XModel > xModel ( pDocSh ? pDocSh->GetModel() : NULL );
-@@ -3566,7 +3414,7 @@ OCX_ContainerControl::OCX_ContainerControl( SotStorageRef& parent,
++ {
++ OSL_TRACE("RadioButton %s has groupname %s",
++ rtl::OUStringToOString( sName, RTL_TEXTENCODING_UTF8 ).getStr(), rtl::OUStringToOString( sGroupName, RTL_TEXTENCODING_UTF8 ).getStr() );
++ try
++ {
++ rPropSet->setPropertyValue( WW8_ASCII2STR("GroupName"), aTmp);
++ }
++ catch( uno::Exception& )
++ {
++ }
++ }
+
+ if (pCaption)
+ {
+@@ -3656,7 +3516,7 @@ OCX_ContainerControl::OCX_ContainerControl( SotStorageRef& parent,
const ::rtl::OUString& sN,
const uno::Reference< container::XNameContainer > &rParent,
OCX_Control* pParent ) :
@@ -293,7 +301,7 @@
{
mContainerStorage = parent->OpenSotStorage(storageName,
-@@ -3800,6 +3648,7 @@ void OCX_ContainerControl::ProcessControl(OCX_Control* pControl,SvStorageStream*
+@@ -3887,6 +3747,7 @@ void OCX_ContainerControl::ProcessControl(OCX_Control* pControl,SvStorageStream*
// applied to all containees
pControl->mnStep = mnStep;
}
@@ -301,7 +309,7 @@
// #117490# DR: container records provide size of substream, use it here...
-@@ -3810,17 +3659,7 @@ void OCX_ContainerControl::ProcessControl(OCX_Control* pControl,SvStorageStream*
+@@ -3897,17 +3758,7 @@ void OCX_ContainerControl::ProcessControl(OCX_Control* pControl,SvStorageStream*
// set stream to position behind substream of this control
oStream->Seek( nStrmPos + rec.nSubStreamLen );
@@ -320,7 +328,7 @@
}
}
-@@ -3843,7 +3682,6 @@ sal_Bool OCX_ContainerControl::Read(SvStorageStream *pS)
+@@ -3930,7 +3781,6 @@ sal_Bool OCX_ContainerControl::Read(SvStorageStream *pS)
// this ensures that the default tab index created by Star/Open office
// reflects the "flattened" ms tab order.
::std::sort( mpControls.begin(), mpControls.end(), SortOrderByTabPos() );
@@ -329,10 +337,10 @@
}
diff --git xmlscript/source/xmldlg_imexp/xmldlg_expmodels.cxx xmlscript/source/xmldlg_imexp/xmldlg_expmodels.cxx
-index ac4444e..7488f94 100644
+index f864d51..4f87c16 100644
--- xmlscript/source/xmldlg_imexp/xmldlg_expmodels.cxx
+++ xmlscript/source/xmldlg_imexp/xmldlg_expmodels.cxx
-@@ -452,6 +452,8 @@ void ElementDescriptor::readRadioButtonModel( StyleBag * all_styles, Reference<
+@@ -458,6 +458,8 @@ void ElementDescriptor::readRadioButtonModel( StyleBag * all_styles, Reference<
OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":image-position") ) );
readBoolAttr( OUString( RTL_CONSTASCII_USTRINGPARAM("MultiLine") ),
OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":multiline") ) );
@@ -342,10 +350,10 @@
sal_Int16 nState = 0;
if (readProp( OUString( RTL_CONSTASCII_USTRINGPARAM("State") ) ) >>= nState)
diff --git xmlscript/source/xmldlg_imexp/xmldlg_impmodels.cxx xmlscript/source/xmldlg_imexp/xmldlg_impmodels.cxx
-index e47c033..310b3a6 100644
+index 9db354d..92c1a09 100644
--- xmlscript/source/xmldlg_imexp/xmldlg_impmodels.cxx
+++ xmlscript/source/xmldlg_imexp/xmldlg_impmodels.cxx
-@@ -1521,6 +1521,9 @@ void TitledBoxElement::endElement()
+@@ -1634,6 +1634,9 @@ void TitledBoxElement::endElement()
ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("MultiLine") ),
OUString( RTL_CONSTASCII_USTRINGPARAM("multiline") ),
xAttributes );
@@ -355,7 +363,7 @@
sal_Int16 nVal = 0;
sal_Bool bChecked = sal_False;
-@@ -1662,6 +1665,9 @@ void RadioGroupElement::endElement()
+@@ -1775,6 +1778,9 @@ void RadioGroupElement::endElement()
ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("MultiLine") ),
OUString( RTL_CONSTASCII_USTRINGPARAM("multiline") ),
xAttributes );
Modified: trunk/patches/dev300/forms-radio-button-group-names.diff
==============================================================================
--- trunk/patches/dev300/forms-radio-button-group-names.diff (original)
+++ trunk/patches/dev300/forms-radio-button-group-names.diff Fri Dec 5 16:28:06 2008
@@ -280,7 +280,7 @@
@@ -122,6 +123,7 @@ ORadioButtonModel::ORadioButtonModel(con
m_nClassId = FormComponentType::RADIOBUTTON;
m_aLabelServiceName = FRM_SUN_COMPONENT_GROUPBOX;
- initValueProperty( PROPERTY_STATE, PROPERTY_ID_STATE );
+ initValueProperty( PROPERTY_STATE, PROPERTY_ID_STATE );
+ startAggregatePropertyListening( PROPERTY_GROUP_NAME );
}
@@ -691,10 +691,10 @@
--- toolkit/inc/toolkit/helper/property.hxx
+++ toolkit/inc/toolkit/helper/property.hxx
@@ -192,6 +192,7 @@ namespace rtl {
- #define BASEPROPERTY_URL 134 // ::rtl::OUString
#define BASEPROPERTY_UNIT 135 // ::awt::FieldUnit
#define BASEPROPERTY_CUSTOMUNITTEXT 136 // ::rtl::OUString
-+#define BASEPROPERTY_GROUPNAME 137 // ::rtl::OUString
+ #define BASEPROPERTY_ENABLEVISIBLE 137 // sal_Bool
++#define BASEPROPERTY_GROUPNAME 138 // ::rtl::OUString
// Keine gebundenen Properties, werden immer aus der Property BASEPROPERTY_FONTDESCRIPTOR entnommen.
#define BASEPROPERTY_FONTDESCRIPTORPART_START 1000
Modified: trunk/patches/dev300/xl-import-formradiobutton.diff
==============================================================================
--- trunk/patches/dev300/xl-import-formradiobutton.diff (original)
+++ trunk/patches/dev300/xl-import-formradiobutton.diff Fri Dec 5 16:28:06 2008
@@ -1,262 +1,136 @@
diff --git sc/source/filter/excel/xiescher.cxx sc/source/filter/excel/xiescher.cxx
-index 43de9ef..749b1fd 100644
+index b19de94..1df3f38 100644
--- sc/source/filter/excel/xiescher.cxx
+++ sc/source/filter/excel/xiescher.cxx
-@@ -650,23 +651,31 @@ ScfPropertySet XclImpControlObjHelper::GetControlPropSet() const
- return ScfPropertySet( mxCtrlModel );
+@@ -1709,22 +1709,15 @@ SdrObject* XclImpControlHelper::CreateSdrObjectFromShape(
+ return xSdrObj.release();
}
--void XclImpControlObjHelper::ConvertSheetLinks( const XclImpRoot& rRoot, SdrObject& /* rSdrObj */ ) const
-+// get service factory from Calc document
-+Reference< XMultiServiceFactory > lclGetFactoryFromRoot( const XclImpRoot& rRoot )
+-void XclImpControlHelper::ProcessControl( const XclImpDrawObjBase& rDrawObj ) const
++void XclImpControlHelper::ApplySheetLinkProps() const
{
- // get service factory from Calc document
- Reference< XMultiServiceFactory > xFactory;
- if( SfxObjectShell* pDocShell = rRoot.GetDocShell() )
- xFactory.set( pDocShell->GetModel(), UNO_QUERY );
-+ return xFactory;
-+}
-+
-+void XclImpControlObjHelper::ConvertSheetLinks( const XclImpRoot& rRoot, const ScfRef< ScAddress >& rxCellLink ) const
-+{
-+ Reference< XMultiServiceFactory > xFactory = lclGetFactoryFromRoot( rRoot );
+
- if( !mxCtrlModel.is() || !xFactory.is() )
+ Reference< XControlModel > xCtrlModel = XclControlHelper::GetControlModel( mxShape );
+ if( !xCtrlModel.is() )
return;
+-
+ ScfPropertySet aPropSet( xCtrlModel );
- // *** cell link *** ------------------------------------------------------
-
- Reference< XBindableValue > xBindable( mxCtrlModel, UNO_QUERY );
-- if( mxCellLink.is() && xBindable.is() )
-+ if( rxCellLink.is() && xBindable.is() )
+- // #118053# #i51348# set object name at control model
+- aPropSet.SetStringProperty( CREATE_OUSTRING( "Name" ), rDrawObj.GetObjName() );
+-
+- // control visible and printable?
+-// aPropSet.SetBoolProperty( CREATE_OUSTRING( "EnableVisible" ), rDrawObj.IsVisible() ); // waiting for #i88878#
+- aPropSet.SetBoolProperty( CREATE_OUSTRING( "Printable" ), rDrawObj.IsPrintable() );
+-
+- // sheet links
++ // sheet links
+ if( SfxObjectShell* pDocShell = mrRoot.GetDocShell() )
{
- // create argument sequence for createInstanceWithArguments()
- CellAddress aApiAddress;
-- ScUnoConversion::FillApiAddress( aApiAddress, *mxCellLink );
-+ ScUnoConversion::FillApiAddress( aApiAddress, *rxCellLink );
-
- NamedValue aValue;
- aValue.Name = CREATE_OUSTRING( SC_UNONAME_BOUNDCELL );
-@@ -703,14 +712,24 @@ void XclImpControlObjHelper::ConvertSheetLinks( const XclImpRoot& rRoot, SdrObje
- xBindable->setValueBinding( xBinding );
+ Reference< XMultiServiceFactory > xFactory( pDocShell->GetModel(), UNO_QUERY );
+@@ -1787,7 +1780,26 @@ void XclImpControlHelper::ProcessControl( const XclImpDrawObjBase& rDrawObj ) co
+ }
+ }
}
-
-+
+}
+
-+void XclImpControlObjHelper::ConvertSheetLinks( const XclImpRoot& rRoot, const ScfRef< ScRange >& rxSrcRange ) const
++void XclImpControlHelper::ProcessControl( const XclImpDrawObjBase& rDrawObj ) const
+{
-+ Reference< XMultiServiceFactory > xFactory = lclGetFactoryFromRoot( rRoot );
-+
-+ if( !mxCtrlModel.is() || !xFactory.is() )
++ Reference< XControlModel > xCtrlModel = XclControlHelper::GetControlModel( mxShape );
++ if( !xCtrlModel.is() )
+ return;
+
- // *** source range *** ---------------------------------------------------
-
- Reference< XListEntrySink > xEntrySink( mxCtrlModel, UNO_QUERY );
-- if( mxSrcRange.is() && xEntrySink.is() )
-+ if( rxSrcRange.is() && xEntrySink.is() )
- {
- // create argument sequence for createInstanceWithArguments()
- CellRangeAddress aApiRange;
-- ScUnoConversion::FillApiRange( aApiRange, *mxSrcRange );
-+ ScUnoConversion::FillApiRange( aApiRange, *rxSrcRange );
-
- NamedValue aValue;
- aValue.Name = CREATE_OUSTRING( SC_UNONAME_CELLRANGE );
-@@ -735,13 +754,26 @@ void XclImpControlObjHelper::ConvertSheetLinks( const XclImpRoot& rRoot, SdrObje
- if( xEntrySource.is() )
- xEntrySink->setListEntrySource( xEntrySource );
- }
++ ApplySheetLinkProps();
+
-+}
-+
-+void XclImpControlObjHelper::ConvertSheetLinks( const XclImpRoot& rRoot, SdrObject& /* rSdrObj */ ) const
-+{
-+ // *** cell link *** ------------------------------------------------------
++ ScfPropertySet aPropSet( xCtrlModel );
+
-+ ConvertSheetLinks( rRoot, mxCellLink );
++ // #118053# #i51348# set object name at control model
++ aPropSet.SetStringProperty( CREATE_OUSTRING( "Name" ), rDrawObj.GetObjName() );
+
-+ // *** source range *** ---------------------------------------------------
-+
-+ ConvertSheetLinks( rRoot, mxSrcRange );
- }
-
- // ----------------------------------------------------------------------------
-
- XclImpTbxControlObj::XclImpTbxControlObj( const XclImpRoot& rRoot ) :
- XclImpDrawingObj( rRoot, true ),
- XclImpControlObjHelper( EXC_CTRL_BINDPOSITION ),
-+ mbGroupLeader( false ),
- mnState( EXC_OBJ_CBLS_STATE_UNCHECK ),
- mnSelEntry( 0 ),
- mnSelType( EXC_OBJ_LBS_SEL_SIMPLE ),
-@@ -777,6 +810,9 @@ void XclImpTbxControlObj::ReadSubRecord( XclImpStream& rStrm, sal_uInt16 nSubRec
- case EXC_ID_OBJ_FTGBODATA:
- ReadGboData( rStrm );
- break;
-+ case EXC_ID_OBJ_FTRBODATA:
-+ ReadRboData( rStrm );
-+ break;
- default:
- XclImpDrawObjBase::ReadSubRecord( rStrm, nSubRecId, nSubRecSize );
- }
-@@ -815,7 +851,6 @@ void XclImpTbxControlObj::DoProcessSdrObj( SdrObject& rSdrObj ) const
-
- namespace AwtVisualEffect = ::com::sun::star::awt::VisualEffect;
- namespace AwtScrollOrient = ::com::sun::star::awt::ScrollBarOrientation;
-- using ::com::sun::star::style::VerticalAlignment_MIDDLE;
++ // control visible and printable?
++// aPropSet.SetBoolProperty( CREATE_OUSTRING( "EnableVisible" ), rDrawObj.IsVisible() ); // waiting for #i88878#
++ aPropSet.SetBoolProperty( CREATE_OUSTRING( "Printable" ), rDrawObj.IsPrintable() );
- // control name, printable, sheet links -----------------------------------
-
-@@ -856,24 +891,29 @@ void XclImpTbxControlObj::DoProcessSdrObj( SdrObject& rSdrObj ) const
- case EXC_OBJ_CMO_CHECKBOX:
- case EXC_OBJ_CMO_OPTIONBUTTON:
- {
-- bool bCheckBox = GetObjType() == EXC_OBJ_CMO_CHECKBOX;
--
-- sal_Int16 nApiState = 0;
-- switch( mnState )
-+ if( GetObjType() == EXC_OBJ_CMO_CHECKBOX )
-+ SetCBRBCommonProps();
-+ else
- {
-- case EXC_OBJ_CBLS_STATE_UNCHECK: nApiState = 0; break;
-- case EXC_OBJ_CBLS_STATE_CHECK: nApiState = 1; break;
-- case EXC_OBJ_CBLS_STATE_TRI: nApiState = bCheckBox ? 2 : 1; break;
-+ XclImpTbxControlObj* pTbxObj = dynamic_cast< XclImpTbxControlObj* >( GetObjectManager().FindDrawObj( mNextRBInGroupId ).get() );
-+ if ( ( pTbxObj && pTbxObj->mbGroupLeader ) )
-+ {
-+ // Group has terminated
-+ // traverse each RadioButton in group and
-+ // a) apply the groupname
-+ // b) propagate the linked cell from the lead radiobutton
-+ // c) apply the correct Ref value
-+ XclImpTbxControlObj* pLeader = pTbxObj;
-+ XclObjId rLeaderId = pLeader->GetObjId();
-+ sal_Int32 nRefVal = 1;
-+ do
-+ {
-+ pTbxObj->ApplyGroupingBits( *pLeader, nRefVal++ );
-+ pTbxObj = dynamic_cast< XclImpTbxControlObj* >( GetObjectManager().FindDrawObj( pTbxObj->mNextRBInGroupId ).get() );
-+ } while ( pTbxObj && !pTbxObj->mbGroupLeader );
-+ }
-+
- }
-- if( bCheckBox )
-- aPropSet.SetBoolProperty( CREATE_OUSTRING( "TriState" ), nApiState == 2 );
-- aPropSet.SetProperty( CREATE_OUSTRING( "DefaultState" ), nApiState );
--
-- sal_Int16 nApiBorder = mbFlatButton ? AwtVisualEffect::FLAT : AwtVisualEffect::LOOK3D;
-- aPropSet.SetProperty( CREATE_OUSTRING( "VisualEffect" ), nApiBorder );
--
-- // #i40279# always centered vertically
-- aPropSet.SetProperty( CREATE_OUSTRING( "VerticalAlign" ), VerticalAlignment_MIDDLE );
- }
- break;
-
-@@ -1023,6 +1063,45 @@ void XclImpTbxControlObj::ReadLbsData( XclImpStream& rStrm )
- }
++
+ // virtual call for type specific processing
+ DoProcessControl( aPropSet );
}
-
-+void XclImpTbxControlObj::ApplyGroupingBits( XclImpTbxControlObj& rLeadRB, sal_Int32 nRefVal )
-+{
-+ ScfPropertySet aProps = GetControlPropSet();
-+ // shape Id is formed from object id + sheet id
-+ rtl::OUString sGroupName = rtl::OUString::valueOf( static_cast< sal_Int32 >( rLeadRB.GetShapeId() ) );
-+ aProps.SetStringProperty( CREATE_OUSTRING( "GroupName" ), sGroupName );
-+ aProps.SetStringProperty( CREATE_OUSTRING( "RefValue" ), rtl::OUString::valueOf( nRefVal ) );
-+ // propagate cell link info
-+ if ( rLeadRB.HasCellLink() && !HasCellLink() )
+@@ -2118,6 +2130,45 @@ void XclImpOptionButtonObj::DoProcessControl( ScfPropertySet& rPropSet ) const
+ {
+ XclImpCheckBoxObj::DoProcessControl( rPropSet );
+ // TODO: grouping
++ XclImpOptionButtonObj* pTbxObj = dynamic_cast< XclImpOptionButtonObj* >( GetObjectManager().FindDrawObj( XclObjId( GetScTab(), mnNextInGroup ) ).get() );
++ if ( ( pTbxObj && pTbxObj->mnFirstInGroup ) )
+ {
-+ ScfRef< ScAddress > xAddress( new ScAddress( *rLeadRB.GetCellLink() ) );
-+ ConvertSheetLinks( GetRoot(), xAddress );
++ // Group has terminated
++ // traverse each RadioButton in group and
++ // a) apply the groupname
++ // b) propagate the linked cell from the lead radiobutton
++ // c) apply the correct Ref value
++ XclImpOptionButtonObj* pLeader = pTbxObj;
++ ;
++ sal_Int32 nRefVal = 1;
++ OSL_TRACE( "0x%x start group ", pLeader->GetObjId().mnObjId );
++ do
++ {
++
++ Reference< XControlModel > xCtrlModel = XclControlHelper::GetControlModel( pTbxObj->mxShape );
++ if ( xCtrlModel.is() )
++ {
++ ScfPropertySet aProps( xCtrlModel );
++ rtl::OUString sGroupName = rtl::OUString::valueOf( static_cast< sal_Int32 >( pLeader->GetDffShapeId() ) );
++
++ aProps.SetStringProperty( CREATE_OUSTRING( "GroupName" ), sGroupName );
++ aProps.SetStringProperty( CREATE_OUSTRING( "RefValue" ), rtl::OUString::valueOf( nRefVal++ ) );
++ if ( pLeader->HasCellLink() && !pTbxObj->HasCellLink() )
++ {
++ // propagate cell link info
++ pTbxObj->mxCellLink.reset( new ScAddress( *pLeader->mxCellLink.get() ) );
++ pTbxObj->ApplySheetLinkProps();
++ }
++ pTbxObj = dynamic_cast< XclImpOptionButtonObj* >( GetObjectManager().FindDrawObj( XclObjId( GetScTab(), pTbxObj->mnNextInGroup ) ).get() );
++ }
++ else
++ pTbxObj = NULL;
++ } while ( pTbxObj && !( pTbxObj->mnFirstInGroup == 1 ) );
+ }
-+ SetCBRBCommonProps();
-+}
-+
-+void XclImpTbxControlObj::SetCBRBCommonProps() const
-+{
-+ sal_Int16 nApiState = 0;
-+ bool bCheckBox = ( GetObjType() == EXC_OBJ_CMO_CHECKBOX );
-+ switch( mnState )
++ else
+ {
-+ case EXC_OBJ_CBLS_STATE_UNCHECK: nApiState = 0; break;
-+ case EXC_OBJ_CBLS_STATE_CHECK: nApiState = 1; break;
-+ case EXC_OBJ_CBLS_STATE_TRI: nApiState = bCheckBox ? 2 : 1; break;
++ // not the leader? try and find it
+ }
-+ ScfPropertySet aPropSet = GetControlPropSet();
-+ if ( bCheckBox )
-+ aPropSet.SetBoolProperty( CREATE_OUSTRING( "TriState" ), nApiState == 2 );
-+ namespace AwtVisualEffect = ::com::sun::star::awt::VisualEffect;
-+ using ::com::sun::star::style::VerticalAlignment_MIDDLE;
-+
-+ aPropSet.SetProperty( CREATE_OUSTRING( "DefaultState" ), nApiState );
-+ sal_Int16 nApiBorder = mbFlatButton ? AwtVisualEffect::FLAT : AwtVisualEffect::LOOK3D;
-+ aPropSet.SetProperty( CREATE_OUSTRING( "VisualEffect" ), nApiBorder );
-+ // #i40279# always centered vertically
-+ aPropSet.SetProperty( CREATE_OUSTRING( "VerticalAlign" ), VerticalAlignment_MIDDLE );
-+}
-+
- void XclImpTbxControlObj::ReadSbs( XclImpStream& rStrm )
- {
- sal_uInt16 nOrient, nStyle;
-@@ -1043,6 +1122,17 @@ void XclImpTbxControlObj::ReadGboData( XclImpStream& rStrm )
- mbFlatBorder = ::get_flag( nStyle, EXC_OBJ_GBO_FLAT );
}
-+void XclImpTbxControlObj::ReadRboData( XclImpStream& rStrm )
-+{
-+ sal_Int16 mnNextRBInGroup;
-+ rStrm >> mnNextRBInGroup;
-+ sal_uInt8 nGroupLeader;
-+ rStrm >> nGroupLeader;
-+ sal_uInt8 unknown;
-+ rStrm >> unknown;
-+ mbGroupLeader = ( nGroupLeader & 0x1 );
-+ mNextRBInGroupId = XclObjId( GetScTab(), mnNextRBInGroup );
-+}
- // ----------------------------------------------------------------------------
-
- XclImpOleObj::XclImpOleObj( const XclImpRoot& rRoot ) :
+ OUString XclImpOptionButtonObj::DoGetServiceName() const
diff --git sc/source/filter/inc/xiescher.hxx sc/source/filter/inc/xiescher.hxx
-index b66314b..ea8a91b 100644
+index 2296996..3e59515 100644
--- sc/source/filter/inc/xiescher.hxx
+++ sc/source/filter/inc/xiescher.hxx
-@@ -242,6 +242,9 @@ protected:
- ScfPropertySet GetControlPropSet() const;
- /** Tries to set a spreadsheet cell link and source range link at the passed form control. */
- void ConvertSheetLinks( const XclImpRoot& rRoot, SdrObject& rSdrObj ) const;
-+ void ConvertSheetLinks( const XclImpRoot& rRoot, const ScfRef< ScAddress >& rxCellLink ) const;
-+ void ConvertSheetLinks( const XclImpRoot& rRoot, const ScfRef< ScRange >& rxSrcRange ) const;
-+ ScAddress* GetCellLink(){ return mxCellLink.get(); }
-
+@@ -498,6 +498,10 @@ protected:
+ /** Derived classes will set additional properties for the current form control. */
+ virtual void DoProcessControl( ScfPropertySet& rPropSet ) const;
+
++ void ApplySheetLinkProps() const;
++ mutable ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape >
++ mxShape; /// The UNO wrapper of the control shape.
++ ScfRef< ScAddress > mxCellLink; /// Linked cell in the Calc document.
private:
- XControlModelRef mxCtrlModel; /// Model of the created form control object.
-@@ -283,8 +286,14 @@ private:
- void ReadSbs( XclImpStream& rStrm );
- /** Reads the contents of the ftGboData sub structure in an OBJ record. */
- void ReadGboData( XclImpStream& rStrm );
-+ /** Reads the contents of the ftRboData sub structure in an OBJ record. */
-+ void ReadRboData( XclImpStream& rStrm );
+ /** Reads a list of cell ranges from a formula at the current stream position. */
+ void ReadRangeList( ScRangeList& rScRanges, XclImpStream& rStrm );
+@@ -506,9 +510,6 @@ private:
private:
-+ void SetCBRBCommonProps() const;
-+ void ApplyGroupingBits( XclImpTbxControlObj& rTbxObj, sal_Int32 nRefVal );
-+ bool mbGroupLeader; /// Identifies start of group
-+ XclObjId mNextRBInGroupId; ///
- ScfInt16Vec maMultiSel; /// Indexes of all selected entries in a multi selection.
- sal_uInt16 mnState; /// Checked/unchecked state.
- sal_Int16 mnSelEntry; /// Index of selected entry (1-based).
-diff --git sc/source/filter/inc/xlescher.hxx sc/source/filter/inc/xlescher.hxx
-index 4750b4a..b80eaae 100644
---- sc/source/filter/inc/xlescher.hxx
-+++ sc/source/filter/inc/xlescher.hxx
-@@ -64,6 +64,7 @@ const sal_uInt16 EXC_ID_OBJ_FTCBLS = 0x000A; /// Check box/radio butt
- const sal_uInt16 EXC_ID_OBJ_FTSBS = 0x000C; /// Scroll bar data.
- const sal_uInt16 EXC_ID_OBJ_FTSBSFMLA = 0x000E; /// Scroll bar/list box/combo box cell link.
- const sal_uInt16 EXC_ID_OBJ_FTGBODATA = 0x000F; /// Group box data.
-+const sal_uInt16 EXC_ID_OBJ_FTRBODATA = 0x0011; /// Radiobutton data.
- const sal_uInt16 EXC_ID_OBJ_FTLBSDATA = 0x0013; /// List box/combo box data.
- const sal_uInt16 EXC_ID_OBJ_FTCBLSFMLA = 0x0014; /// Check box/radio button cell link.
- const sal_uInt16 EXC_ID_OBJ_FTCMO = 0x0015; /// Common object settings.
+ const XclImpRoot& mrRoot; /// Not derived from XclImpRoot to allow multiple inheritance.
+- mutable ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape >
+- mxShape; /// The UNO wrapper of the control shape.
+- ScfRef< ScAddress > mxCellLink; /// Linked cell in the Calc document.
+ ScfRef< ScRange > mxSrcRange; /// Source data range in the Calc document.
+ XclCtrlBindMode meBindMode; /// Value binding mode.
+ };
+@@ -610,6 +611,7 @@ protected:
+ virtual XclTbxEventType DoGetEventType() const;
+
+ protected:
++ void ApplyGrouping( XclImpOptionButtonObj& rLeader, sal_Int32 nRefVal );
+ sal_uInt16 mnNextInGroup; /// Next option button in a group.
+ sal_uInt16 mnFirstInGroup; /// 1 = Button is the first in a group.
+ };
Modified: trunk/patches/vba/enhanced-form-userform-controls.diff
==============================================================================
--- trunk/patches/vba/enhanced-form-userform-controls.diff (original)
+++ trunk/patches/vba/enhanced-form-userform-controls.diff Fri Dec 5 16:28:06 2008
@@ -1125,10 +1125,11 @@
index 1301975..e8f0005 100644
--- toolkit/inc/toolkit/controls/dialogcontrol.hxx
+++ toolkit/inc/toolkit/controls/dialogcontrol.hxx
-@@ -52,6 +52,7 @@
+@@ -52,7 +52,8 @@
#include <cppuhelper/basemutex.hxx>
#include <cppuhelper/basemutex.hxx>
#include <list>
+ #include <map>
+#include <com/sun/star/graphic/XGraphicObject.hpp>
// ----------------------------------------------------
Modified: trunk/patches/vba/vba-userform-geometry-tweak.diff
==============================================================================
--- trunk/patches/vba/vba-userform-geometry-tweak.diff (original)
+++ trunk/patches/vba/vba-userform-geometry-tweak.diff Fri Dec 5 16:28:06 2008
@@ -288,10 +288,10 @@
--- toolkit/inc/toolkit/helper/property.hxx
+++ toolkit/inc/toolkit/helper/property.hxx
@@ -190,6 +190,7 @@ namespace rtl {
- #define BASEPROPERTY_UNIT 135 // ::awt::FieldUnit
#define BASEPROPERTY_CUSTOMUNITTEXT 136 // ::rtl::OUString
#define BASEPROPERTY_ENABLEVISIBLE 137 // sal_Bool
-+#define BASEPROPERTY_VBAFORM 138 // sal_Bool
+ #define BASEPROPERTY_GROUPNAME 138 // ::rtl::OUString
++#define BASEPROPERTY_VBAFORM 139 // sal_Bool
// Keine gebundenen Properties, werden immer aus der Property BASEPROPERTY_FONTDESCRIPTOR entnommen.
#define BASEPROPERTY_FONTDESCRIPTORPART_START 1000
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]