add hackery re. EditControls, FormattedField & ImageControls from msocximex
This commit is contained in:
@@ -138,6 +138,7 @@ struct IdCntrlData
|
|||||||
};
|
};
|
||||||
|
|
||||||
const sal_Int16 TOGGLEBUTTON = -1;
|
const sal_Int16 TOGGLEBUTTON = -1;
|
||||||
|
const sal_Int16 FIELDCONTROL = -2;
|
||||||
|
|
||||||
typedef std::map< sal_Int16, GUIDCNamePair > GUIDCNamePairMap;
|
typedef std::map< sal_Int16, GUIDCNamePair > GUIDCNamePairMap;
|
||||||
class classIdToGUIDCNamePairMap
|
class classIdToGUIDCNamePairMap
|
||||||
@@ -196,6 +197,9 @@ classIdToGUIDCNamePairMap::classIdToGUIDCNamePairMap()
|
|||||||
{ FormComponentType::PATTERNFIELD,
|
{ FormComponentType::PATTERNFIELD,
|
||||||
{ AX_GUID_TEXTBOX, "TextBox"},
|
{ AX_GUID_TEXTBOX, "TextBox"},
|
||||||
},
|
},
|
||||||
|
{ FormComponentType::FORMULAFIELD,
|
||||||
|
{ AX_GUID_TEXTBOX, "TextBox"},
|
||||||
|
},
|
||||||
{ FormComponentType::IMAGEBUTTON,
|
{ FormComponentType::IMAGEBUTTON,
|
||||||
{ AX_GUID_COMMANDBUTTON, "CommandButton"},
|
{ AX_GUID_COMMANDBUTTON, "CommandButton"},
|
||||||
},
|
},
|
||||||
@@ -501,14 +505,34 @@ OleFormCtrlExportHelper::OleFormCtrlExportHelper( const Reference< XComponentCo
|
|||||||
PropertySet aPropSet( mxControlModel );
|
PropertySet aPropSet( mxControlModel );
|
||||||
if ( aPropSet.getProperty( nClassId, PROP_ClassId ) )
|
if ( aPropSet.getProperty( nClassId, PROP_ClassId ) )
|
||||||
{
|
{
|
||||||
// psuedo ripped from legacy msocximex
|
/* psuedo ripped from legacy msocximex:
|
||||||
if ( nClassId == FormComponentType::COMMANDBUTTON )
|
"There is a truly horrible thing with EditControls and FormattedField
|
||||||
|
Controls, they both pretend to have an EDITBOX ClassId for compability
|
||||||
|
reasons, at some stage in the future hopefully there will be a proper
|
||||||
|
FormulaField ClassId rather than this piggybacking two controls onto the
|
||||||
|
same ClassId, cmc."
|
||||||
|
*/
|
||||||
|
if ( nClassId == FormComponentType::TEXTFIELD)
|
||||||
|
{
|
||||||
|
if (xInfo->
|
||||||
|
supportsService( CREATE_OUSTRING( "com.sun.star.form.component.FormattedField" ) ) )
|
||||||
|
nClassId = FormComponentType::FORMULAFIELD;
|
||||||
|
}
|
||||||
|
else if ( nClassId == FormComponentType::COMMANDBUTTON )
|
||||||
{
|
{
|
||||||
bool bToggle = false;
|
bool bToggle = false;
|
||||||
aPropSet.getProperty( bToggle, PROP_Toggle );
|
aPropSet.getProperty( bToggle, PROP_Toggle );
|
||||||
if ( bToggle )
|
if ( bToggle )
|
||||||
nClassId = TOGGLEBUTTON;
|
nClassId = TOGGLEBUTTON;
|
||||||
}
|
}
|
||||||
|
else if ( nClassId == FormComponentType::CONTROL )
|
||||||
|
{
|
||||||
|
Reference< XServiceInfo > xInfo( xCntrlModel,
|
||||||
|
UNO_QUERY);
|
||||||
|
if (xInfo->
|
||||||
|
supportsService(OUString( CREATE_OUSTRING( "com.sun.star.form.component.ImageControl" ) ) ) )
|
||||||
|
nClassId = FormComponentType::IMAGECONTROL;
|
||||||
|
}
|
||||||
|
|
||||||
GUIDCNamePairMap& cntrlMap = classIdToGUIDCNamePairMap::get();
|
GUIDCNamePairMap& cntrlMap = classIdToGUIDCNamePairMap::get();
|
||||||
GUIDCNamePairMap::iterator it = cntrlMap.find( nClassId );
|
GUIDCNamePairMap::iterator it = cntrlMap.find( nClassId );
|
||||||
|
Reference in New Issue
Block a user