Lines 189-194
Link Here
|
189 |
#endif |
189 |
#endif |
190 |
|
190 |
|
191 |
#include "excform.hxx" |
191 |
#include "excform.hxx" |
|
|
192 |
#include<userdat.hxx> |
192 |
|
193 |
|
193 |
using ::rtl::OUString; |
194 |
using ::rtl::OUString; |
194 |
using ::rtl::OUStringBuffer; |
195 |
using ::rtl::OUStringBuffer; |
Lines 413-418
XclImpDrawObjRef XclImpDrawObjBase::Read
Link Here
|
413 |
|
414 |
|
414 |
void XclImpDrawObjBase::ReadSubRecord( XclImpStream& rStrm, sal_uInt16 nSubRecId, sal_uInt16 nSubRecSize ) |
415 |
void XclImpDrawObjBase::ReadSubRecord( XclImpStream& rStrm, sal_uInt16 nSubRecId, sal_uInt16 nSubRecSize ) |
415 |
{ |
416 |
{ |
|
|
417 |
switch( nSubRecId ) |
418 |
{ |
419 |
case EXC_ID_OBJ_FTMACRO: |
420 |
ReadMacro( rStrm ); |
421 |
break; |
422 |
default: |
423 |
;// perhaps an assert here |
424 |
} |
425 |
|
416 |
} |
426 |
} |
417 |
|
427 |
|
418 |
Rectangle XclImpDrawObjBase::ReadClientAnchor( SvStream& rEscherStrm, const DffRecordHeader& rHeader ) |
428 |
Rectangle XclImpDrawObjBase::ReadClientAnchor( SvStream& rEscherStrm, const DffRecordHeader& rHeader ) |
Lines 494-499
void XclImpDrawObjBase::DoProcessSdrObj(
Link Here
|
494 |
if( !IsPrintable() ) |
504 |
if( !IsPrintable() ) |
495 |
GetTracer().TraceObjectNotPrintable(); |
505 |
GetTracer().TraceObjectNotPrintable(); |
496 |
} |
506 |
} |
|
|
507 |
void XclImpDrawObjBase::ReadMacro( XclImpStream& rStrm ) |
508 |
{ |
509 |
maMacroName.Erase(); |
510 |
if( rStrm.GetRecLeft() > 6 ) |
511 |
{ |
512 |
// macro is stored in a tNameXR token containing a link to a defined name |
513 |
sal_uInt16 nFmlaSize; |
514 |
rStrm >> nFmlaSize; |
515 |
rStrm.Ignore( 4 ); |
516 |
DBG_ASSERT( nFmlaSize == 7, "XclImpDrawObjBase::ReadMacro - unexpected formula size" ); |
517 |
if( nFmlaSize == 7 ) |
518 |
{ |
519 |
sal_uInt8 nTokenId; |
520 |
sal_uInt16 nExtSheet, nExtName; |
521 |
rStrm >> nTokenId >> nExtSheet >> nExtName; |
522 |
DBG_ASSERT( nTokenId == XclTokenArrayHelper::GetTokenId( EXC_TOKID_NAMEX, EXC_TOKCLASS_REF ), |
523 |
"XclImpDrawObjBase::ReadMacro - tNameXR token expected" ); |
524 |
if( nTokenId == XclTokenArrayHelper::GetTokenId( EXC_TOKID_NAMEX, EXC_TOKCLASS_REF ) ) |
525 |
{ |
526 |
maMacroName = GetLinkManager().GetMacroName( nExtSheet, nExtName ); |
527 |
// #i38718# missing module name - try to find the macro in the imported modules |
528 |
if( maMacroName.Len() && (maMacroName.Search( '.' ) == STRING_NOTFOUND) ) |
529 |
if( SfxObjectShell* pDocShell = GetDocShell() ) |
530 |
if( StarBASIC* pBasic = pDocShell->GetBasic() ) |
531 |
if( SbMethod* pMethod = dynamic_cast< SbMethod* >( pBasic->Find( maMacroName, SbxCLASS_METHOD ) ) ) |
532 |
if( SbModule* pModule = pMethod->GetModule() ) |
533 |
maMacroName.Insert( '.', 0 ).Insert( pModule->GetName(), 0 ); |
534 |
} |
535 |
} |
536 |
} |
537 |
} |
538 |
|
497 |
|
539 |
|
498 |
// ---------------------------------------------------------------------------- |
540 |
// ---------------------------------------------------------------------------- |
499 |
|
541 |
|
Lines 654-662
void XclImpTbxControlObj::ReadSubRecord(
Link Here
|
654 |
case EXC_ID_OBJ_FTGBODATA: |
696 |
case EXC_ID_OBJ_FTGBODATA: |
655 |
ReadGboData( rStrm ); |
697 |
ReadGboData( rStrm ); |
656 |
break; |
698 |
break; |
657 |
case EXC_ID_OBJ_FTMACRO: |
|
|
658 |
ReadMacro( rStrm ); |
659 |
break; |
660 |
default: |
699 |
default: |
661 |
XclImpDrawObjBase::ReadSubRecord( rStrm, nSubRecId, nSubRecSize ); |
700 |
XclImpDrawObjBase::ReadSubRecord( rStrm, nSubRecId, nSubRecSize ); |
662 |
} |
701 |
} |
Lines 833-839
void XclImpTbxControlObj::WriteToPropert
Link Here
|
833 |
|
872 |
|
834 |
bool XclImpTbxControlObj::FillMacroDescriptor( ScriptEventDescriptor& rEvent ) const |
873 |
bool XclImpTbxControlObj::FillMacroDescriptor( ScriptEventDescriptor& rEvent ) const |
835 |
{ |
874 |
{ |
836 |
if( maMacroName.Len() ) |
875 |
if( GetMacroName().Len() ) |
837 |
{ |
876 |
{ |
838 |
// type of action is dependent on control type |
877 |
// type of action is dependent on control type |
839 |
rEvent.ListenerType = XclTbxControlHelper::GetListenerType( GetObjType() ); |
878 |
rEvent.ListenerType = XclTbxControlHelper::GetListenerType( GetObjType() ); |
Lines 842-848
bool XclImpTbxControlObj::FillMacroDescr
Link Here
|
842 |
{ |
881 |
{ |
843 |
// set the macro name |
882 |
// set the macro name |
844 |
rEvent.ScriptType = XclTbxControlHelper::GetScriptType(); |
883 |
rEvent.ScriptType = XclTbxControlHelper::GetScriptType(); |
845 |
rEvent.ScriptCode = XclTbxControlHelper::GetScMacroName( maMacroName ); |
884 |
rEvent.ScriptCode = XclTbxControlHelper::GetScMacroName( GetMacroName() ); |
846 |
return true; |
885 |
return true; |
847 |
} |
886 |
} |
848 |
} |
887 |
} |
Lines 924-961
void XclImpTbxControlObj::ReadGboData( X
Link Here
|
924 |
mbFlatBorder = ::get_flag( nStyle, EXC_OBJ_GBO_FLAT ); |
963 |
mbFlatBorder = ::get_flag( nStyle, EXC_OBJ_GBO_FLAT ); |
925 |
} |
964 |
} |
926 |
|
965 |
|
927 |
void XclImpTbxControlObj::ReadMacro( XclImpStream& rStrm ) |
|
|
928 |
{ |
929 |
maMacroName.Erase(); |
930 |
if( rStrm.GetRecLeft() > 6 ) |
931 |
{ |
932 |
// macro is stored in a tNameXR token containing a link to a defined name |
933 |
sal_uInt16 nFmlaSize; |
934 |
rStrm >> nFmlaSize; |
935 |
rStrm.Ignore( 4 ); |
936 |
DBG_ASSERT( nFmlaSize == 7, "XclImpTbxControlObj::ReadMacro - unexpected formula size" ); |
937 |
if( nFmlaSize == 7 ) |
938 |
{ |
939 |
sal_uInt8 nTokenId; |
940 |
sal_uInt16 nExtSheet, nExtName; |
941 |
rStrm >> nTokenId >> nExtSheet >> nExtName; |
942 |
DBG_ASSERT( nTokenId == XclTokenArrayHelper::GetTokenId( EXC_TOKID_NAMEX, EXC_TOKCLASS_REF ), |
943 |
"XclImpTbxControlObj::ReadMacro - tNameXR token expected" ); |
944 |
if( nTokenId == XclTokenArrayHelper::GetTokenId( EXC_TOKID_NAMEX, EXC_TOKCLASS_REF ) ) |
945 |
{ |
946 |
maMacroName = GetLinkManager().GetMacroName( nExtSheet, nExtName ); |
947 |
// #i38718# missing module name - try to find the macro in the imported modules |
948 |
if( maMacroName.Len() && (maMacroName.Search( '.' ) == STRING_NOTFOUND) ) |
949 |
if( SfxObjectShell* pDocShell = GetDocShell() ) |
950 |
if( StarBASIC* pBasic = pDocShell->GetBasic() ) |
951 |
if( SbMethod* pMethod = dynamic_cast< SbMethod* >( pBasic->Find( maMacroName, SbxCLASS_METHOD ) ) ) |
952 |
if( SbModule* pModule = pMethod->GetModule() ) |
953 |
maMacroName.Insert( '.', 0 ).Insert( pModule->GetName(), 0 ); |
954 |
} |
955 |
} |
956 |
} |
957 |
} |
958 |
|
959 |
// ---------------------------------------------------------------------------- |
966 |
// ---------------------------------------------------------------------------- |
960 |
|
967 |
|
961 |
XclImpOleObj::XclImpOleObj( const XclImpRoot& rRoot ) : |
968 |
XclImpOleObj::XclImpOleObj( const XclImpRoot& rRoot ) : |
Lines 1386-1392
SdrObject* XclImpDffManager::ProcessObj(
Link Here
|
1386 |
|
1393 |
|
1387 |
/* Connect textbox data (string, alignment, text orientation) to object. |
1394 |
/* Connect textbox data (string, alignment, text orientation) to object. |
1388 |
#98132# don't ask for a text-ID, Escher export doesn't set one. */ |
1395 |
#98132# don't ask for a text-ID, Escher export doesn't set one. */ |
1389 |
if( XclImpDrawingObj* pDrawingObj = dynamic_cast< XclImpDrawingObj* >( xDrawObj.get() ) ) |
1396 |
XclImpDrawingObj* pDrawingObj = dynamic_cast< XclImpDrawingObj* >( xDrawObj.get() ); |
|
|
1397 |
if( pDrawingObj ) |
1390 |
pDrawingObj->SetTxoData( mrObjManager.FindTxoData( rObjData.rSpHd ) ); |
1398 |
pDrawingObj->SetTxoData( mrObjManager.FindTxoData( rObjData.rSpHd ) ); |
1391 |
|
1399 |
|
1392 |
// #118052# import internal name of a control |
1400 |
// #118052# import internal name of a control |
Lines 1396-1401
SdrObject* XclImpDffManager::ProcessObj(
Link Here
|
1396 |
if( aName.Len() ) |
1404 |
if( aName.Len() ) |
1397 |
pOleObj->SetControlName( aName ); |
1405 |
pOleObj->SetControlName( aName ); |
1398 |
} |
1406 |
} |
|
|
1407 |
else |
1408 |
{ |
1409 |
// its a drawing object or form control |
1410 |
if ( pDrawingObj && xSdrObj.get() ) |
1411 |
{ |
1412 |
ScDrawObjData* pInfo = ScDrawLayer::GetObjData( xSdrObj.get(), TRUE ); |
1413 |
if ( pInfo && pDrawingObj->GetMacroName().Len() ) |
1414 |
pInfo->sMacro = XclTbxControlHelper::GetScMacroName(pDrawingObj->GetMacroName()); |
1415 |
|
1416 |
} |
1417 |
} |
1399 |
|
1418 |
|
1400 |
// try to create a custom SdrObject that overwrites the passed object |
1419 |
// try to create a custom SdrObject that overwrites the passed object |
1401 |
SdrObjectPtr xNewSdrObj( CreateCustomSdrObject( *xDrawObj, rAnchorRect ) ); |
1420 |
SdrObjectPtr xNewSdrObj( CreateCustomSdrObject( *xDrawObj, rAnchorRect ) ); |