Kaydet (Commit) 2b5bf2f1 authored tarafından Oliver Specht's avatar Oliver Specht

graphic import improved

üst 8b66e6b3
......@@ -4,9 +4,9 @@
*
* $RCSfile: ConversionHelper.cxx,v $
*
* $Revision: 1.3 $
* $Revision: 1.4 $
*
* last change: $Author: os $ $Date: 2006-11-06 15:06:27 $
* last change: $Author: os $ $Date: 2006-11-20 12:19:03 $
*
* The Contents of this file are made available subject to
* the terms of GNU Lesser General Public License Version 2.1.
......@@ -51,6 +51,7 @@
using namespace com::sun::star;
namespace dmapper{
namespace ConversionHelper{
#define TWIP_TO_MM100(TWIP) ((TWIP) >= 0 ? (((TWIP)*127L+36L)/72L) : (((TWIP)*127L-36L)/72L))
......@@ -106,7 +107,7 @@ namespace dmapper{
#define DOUBLE_LINE10_IN LINE_WIDTH_0
#define DOUBLE_LINE10_DIST LINE_WIDTH_2
sal_Int32 ConversionHelper::MakeBorderLine( sal_Int32 nSprmValue, table::BorderLine& rToFill )
sal_Int32 MakeBorderLine( sal_Int32 nSprmValue, table::BorderLine& rToFill )
{
//Border
//borders are defined as:
......@@ -127,7 +128,7 @@ sal_Int32 ConversionHelper::MakeBorderLine( sal_Int32 nSprmValue, table::BorderL
sal_Int32 nLineThickness = TWIP_TO_MM100(nLineThicknessTwip);
return MakeBorderLine( nLineThickness, nLineType, nLineColor, nLineDistance, rToFill);
}
sal_Int32 ConversionHelper::MakeBorderLine( sal_Int32 nLineThickness, sal_Int32 nLineType,
sal_Int32 MakeBorderLine( sal_Int32 nLineThickness, sal_Int32 nLineType,
sal_Int32 nLineColor, sal_Int32 nLineDistance,
table::BorderLine& rToFill )
{
......@@ -346,7 +347,7 @@ bool lcl_IsNotAM(::rtl::OUString& rFmt, sal_Int32 nPos)
);
}
::rtl::OUString ConversionHelper::ConvertMSFormatStringToSO(
::rtl::OUString ConvertMSFormatStringToSO(
const ::rtl::OUString& rFormat, lang::Locale& rLocale, bool bHijri)
{
::rtl::OUString sFormat(rFormat);
......@@ -452,5 +453,12 @@ bool lcl_IsNotAM(::rtl::OUString& rFmt, sal_Int32 nPos)
return aNewFormat.makeStringAndClear();
}
/*-------------------------------------------------------------------------
-----------------------------------------------------------------------*/
sal_Int32 convertToMM100(sal_Int32 _t)
{
return TWIP_TO_MM100( _t );
}
} // namespace ConversionHelper
} //namespace dmapper
......@@ -4,9 +4,9 @@
*
* $RCSfile: ConversionHelper.hxx,v $
*
* $Revision: 1.3 $
* $Revision: 1.4 $
*
* last change: $Author: os $ $Date: 2006-11-06 15:06:27 $
* last change: $Author: os $ $Date: 2006-11-20 12:19:03 $
*
* The Contents of this file are made available subject to
* the terms of GNU Lesser General Public License Version 2.1.
......@@ -62,6 +62,7 @@ namespace ConversionHelper{
//convert the number format string form MS format to SO format
::rtl::OUString ConvertMSFormatStringToSO(
const ::rtl::OUString& rFormat, ::com::sun::star::lang::Locale& rLocale, bool bHijri);
sal_Int32 convertToMM100(sal_Int32 _t);
} // namespace ConversionHelper
} //namespace dmapper
......
......@@ -4,9 +4,9 @@
*
* $RCSfile: DomainMapper.cxx,v $
*
* $Revision: 1.6 $
* $Revision: 1.7 $
*
* last change: $Author: os $ $Date: 2006-11-06 15:06:27 $
* last change: $Author: os $ $Date: 2006-11-20 12:19:03 $
*
* The Contents of this file are made available subject to
* the terms of GNU Lesser General Public License Version 2.1.
......@@ -1582,11 +1582,11 @@ void DomainMapper::sprm( doctok::Sprm& sprm_, PropertyMapPtr rContext, SprmType
rContext->Insert(
eSprmType == SPRM_DEFAULT ? PROP_PARA_LEFT_MARGIN : PROP_LEFT_MARGIN,
uno::makeAny( lcl_convertToMM100(nIntValue ) ));
uno::makeAny( ConversionHelper::convertToMM100( nIntValue ) ));
else if(eSprmType == SPRM_DEFAULT)
rContext->Insert(
PROP_PARA_RIGHT_MARGIN,
uno::makeAny( lcl_convertToMM100(nIntValue ) ));
uno::makeAny( ConversionHelper::convertToMM100(nIntValue ) ));
//TODO: what happens to the right margins in numberings?
break;
case 18: // sprmPNest
......@@ -1599,7 +1599,7 @@ void DomainMapper::sprm( doctok::Sprm& sprm_, PropertyMapPtr rContext, SprmType
/* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 1 */
rContext->Insert(
eSprmType == SPRM_DEFAULT ? PROP_PARA_FIRST_LINE_INDENT : PROP_FIRST_LINE_OFFSET,
uno::makeAny( lcl_convertToMM100(nIntValue ) ));
uno::makeAny( ConversionHelper::convertToMM100(nIntValue ) ));
break;
case 20 : // sprmPDyaLine
case 0x6412: // sprmPDyaLine
......@@ -1618,12 +1618,12 @@ void DomainMapper::sprm( doctok::Sprm& sprm_, PropertyMapPtr rContext, SprmType
if(nDistance < 0)
{
aSpacing.Mode = style::LineSpacingMode::FIX;
aSpacing.Height = sal_Int16(lcl_convertToMM100(-nDistance));
aSpacing.Height = sal_Int16(ConversionHelper::convertToMM100(-nDistance));
}
else if(nDistance >0)
{
aSpacing.Mode = style::LineSpacingMode::MINIMUM;
aSpacing.Height = sal_Int16(lcl_convertToMM100(nDistance));
aSpacing.Height = sal_Int16(ConversionHelper::convertToMM100(nDistance));
}
}
rContext->Insert(PROP_PARA_LINE_SPACING, uno::makeAny( aSpacing ));
......@@ -1632,12 +1632,12 @@ void DomainMapper::sprm( doctok::Sprm& sprm_, PropertyMapPtr rContext, SprmType
case 21 : // legacy version
case 0xA413: // sprmPDyaBefore
/* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 1 */
rContext->Insert(PROP_PARA_TOP_MARGIN, uno::makeAny( lcl_convertToMM100( nIntValue ) ));
rContext->Insert(PROP_PARA_TOP_MARGIN, uno::makeAny( ConversionHelper::convertToMM100( nIntValue ) ));
break;
case 22 :
case 0xA414: // sprmPDyaAfter
/* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 1 */
rContext->Insert(PROP_PARA_BOTTOM_MARGIN, uno::makeAny( lcl_convertToMM100( nIntValue ) ));
rContext->Insert(PROP_PARA_BOTTOM_MARGIN, uno::makeAny( ConversionHelper::convertToMM100( nIntValue ) ));
break;
case 23: //sprmPChgTabs
......@@ -2142,7 +2142,7 @@ void DomainMapper::sprm( doctok::Sprm& sprm_, PropertyMapPtr rContext, SprmType
//Kerning half point values
//TODO: there are two kerning values -
// in ww8par6.cxx 0x484b is used as boolean AutoKerning
rContext->Insert(PROP_CHAR_CHAR_KERNING, uno::makeAny( sal_Int16(lcl_convertToMM100(sal_Int16(nIntValue))) ) );
rContext->Insert(PROP_CHAR_CHAR_KERNING, uno::makeAny( sal_Int16(ConversionHelper::convertToMM100(sal_Int16(nIntValue))) ) );
break;
case 0x484B: // sprmCHpsKern auto kerning is bound to a minimum font size in Word - but not in Writer :-(
/* WRITERFILTERSTATUS: done: 100, planned: 2, spent: 0 */
......@@ -2777,7 +2777,11 @@ void DomainMapper::props(doctok::Reference<Properties>::Pointer_t ref)
string sType = ref->getType();
if( sType == "PICF" )
{
m_pImpl->ImportGraphic(ref);
m_pImpl->ImportGraphic(ref, false);
}
else if( sType == "FSPA" )
{
m_pImpl->ImportGraphic(ref, true);
}
else
ref->resolve(*this);
......
......@@ -4,9 +4,9 @@
*
* $RCSfile: DomainMapper_Impl.cxx,v $
*
* $Revision: 1.3 $
* $Revision: 1.4 $
*
* last change: $Author: os $ $Date: 2006-11-02 12:37:24 $
* last change: $Author: os $ $Date: 2006-11-20 12:19:03 $
*
* The Contents of this file are made available subject to
* the terms of GNU Lesser General Public License Version 2.1.
......@@ -505,14 +505,14 @@ void DomainMapper_Impl::ModifyCurrentTabStop( doctok::Id nId, sal_Int32 nValue)
{
case NS_rtf::LN_dxaAdd: //set tab
m_aCurrentTabStops.push_back(
DeletableTabStop(style::TabStop(lcl_convertToMM100(nValue), style::TabAlign_LEFT, ' ', ' ')));
DeletableTabStop(style::TabStop(ConversionHelper::convertToMM100(nValue), style::TabAlign_LEFT, ' ', ' ')));
break;
case NS_rtf::LN_dxaDel: //deleted tab
{
//mark the tab stop at the given position as deleted
::std::vector<DeletableTabStop>::iterator aIt = m_aCurrentTabStops.begin();
::std::vector<DeletableTabStop>::iterator aEndIt = m_aCurrentTabStops.end();
sal_Int32 nConverted = lcl_convertToMM100(nValue);
sal_Int32 nConverted = ConversionHelper::convertToMM100(nValue);
for( ; aIt != aEndIt; ++aIt)
{
if( aIt->Position == nConverted )
......@@ -784,13 +784,6 @@ void DomainMapper_Impl::PopPageHeaderFooter()
{
m_aTextAppendStack.pop();
}
/*-------------------------------------------------------------------------
-----------------------------------------------------------------------*/
sal_Int32 lcl_convertToMM100(sal_Int32 _t)
{
return TWIP_TO_MM100( _t );
}
/*-- 12.09.2006 08:07:55---------------------------------------------------
-----------------------------------------------------------------------*/
......@@ -1602,19 +1595,19 @@ uno::Reference< beans::XPropertySet > DomainMapper_Impl::FindOrCreateFieldMaster
/*-- 01.11.2006 14:57:44---------------------------------------------------
-----------------------------------------------------------------------*/
GraphicImportPtr DomainMapper_Impl::GetGraphicImport()
GraphicImportPtr DomainMapper_Impl::GetGraphicImport(bool bIsShape)
{
if(!m_pGraphicImport)
m_pGraphicImport.reset( new GraphicImport( m_xComponentContext, m_xTextFactory ) );
m_pGraphicImport.reset( new GraphicImport( m_xComponentContext, m_xTextFactory, bIsShape ) );
return m_pGraphicImport;
}
/*-- 01.11.2006 09:25:40---------------------------------------------------
-----------------------------------------------------------------------*/
void DomainMapper_Impl::ImportGraphic(doctok::Reference< doctok::Properties >::Pointer_t ref)
void DomainMapper_Impl::ImportGraphic(doctok::Reference< doctok::Properties >::Pointer_t ref, bool bIsShape)
{
//create the graphic
ref->resolve( *GetGraphicImport() );
ref->resolve( *GetGraphicImport(bIsShape) );
//insert it into the document at the current cursor position
appendTextContent( m_pGraphicImport->GetGraphicObject() );
m_pGraphicImport.reset();
......
......@@ -4,9 +4,9 @@
*
* $RCSfile: DomainMapper_Impl.hxx,v $
*
* $Revision: 1.2 $
* $Revision: 1.3 $
*
* last change: $Author: os $ $Date: 2006-11-02 12:37:24 $
* last change: $Author: os $ $Date: 2006-11-20 12:19:03 $
*
* The Contents of this file are made available subject to
* the terms of GNU Lesser General Public License Version 2.1.
......@@ -86,8 +86,8 @@ namespace dmapper {
using namespace writerfilter;
using namespace com::sun::star;
#define TWIP_TO_MM100(TWIP) ((TWIP) >= 0 ? (((TWIP)*127L+36L)/72L) : (((TWIP)*127L-36L)/72L))
sal_Int32 lcl_convertToMM100(sal_Int32 _t);
//#define TWIP_TO_MM100(TWIP) ((TWIP) >= 0 ? (((TWIP)*127L+36L)/72L) : (((TWIP)*127L-36L)/72L))
//sal_Int32 lcl_convertToMM100(sal_Int32 _t);
/*-- 14.06.2006 07:42:52---------------------------------------------------
property stack element
......@@ -236,9 +236,9 @@ public:
m_pLFOTable.reset( new LFOTable );
return m_pLFOTable;
}
GraphicImportPtr GetGraphicImport();
GraphicImportPtr GetGraphicImport(bool bIsShape );
// this method deletes the current m_pGraphicImport after import
void ImportGraphic(doctok::Reference< doctok::Properties>::Pointer_t );
void ImportGraphic(doctok::Reference< doctok::Properties>::Pointer_t, bool bIsShape );
void InitTabStopFromStyle( const ::com::sun::star::uno::Sequence< ::com::sun::star::style::TabStop >& rInitTabStops );
void ModifyCurrentTabStop( doctok::Id nId, sal_Int32 nValue);
......
......@@ -4,9 +4,9 @@
*
* $RCSfile: GraphicImport.hxx,v $
*
* $Revision: 1.1 $
* $Revision: 1.2 $
*
* last change: $Author: os $ $Date: 2006-11-06 15:01:06 $
* last change: $Author: os $ $Date: 2006-11-20 12:19:03 $
*
* The Contents of this file are made available subject to
* the terms of GNU Lesser General Public License Version 2.1.
......@@ -67,8 +67,9 @@ class WRITERFILTER_DLLPRIVATE GraphicImport : public doctok::Properties, public
::com::sun::star::uno::Reference< ::com::sun::star::text::XTextContent > m_xGraphicObject;
public:
GraphicImport(::com::sun::star::uno::Reference < ::com::sun::star::uno::XComponentContext > xComponentContext,
::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > xTextFactory);
explicit GraphicImport(::com::sun::star::uno::Reference < ::com::sun::star::uno::XComponentContext > xComponentContext,
::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > xTextFactory,
bool bIsShape);
virtual ~GraphicImport();
// Properties
......
......@@ -4,9 +4,9 @@
*
* $RCSfile: PropertyIds.cxx,v $
*
* $Revision: 1.2 $
* $Revision: 1.3 $
*
* last change: $Author: os $ $Date: 2006-11-02 12:37:24 $
* last change: $Author: os $ $Date: 2006-11-20 12:19:04 $
*
* The Contents of this file are made available subject to
* the terms of GNU Lesser General Public License Version 2.1.
......@@ -191,7 +191,30 @@ const rtl::OUString& PropertyNameSupplier::GetName( PropertyIds eId )
case PROP_TITLE : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Title")); break;
case PROP_CONTENT : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Content")); break;
case PROP_DATA_COLUMN_NAME : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("DataColumnName")); break;
case PROP_INPUT_STREAM : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("InputStream")); break;
case PROP_GRAPHIC : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Graphic")); break;
case PROP_ANCHOR_TYPE : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("AnchorType")); break;
case PROP_SIZE : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Size")); break;
case PROP_HORI_ORIENT : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("HoriOrient")); break;
case PROP_HORI_ORIENT_POSITTION : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("HoriOrientPosition")); break;
case PROP_HORI_ORIENT_RELATION : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("HoriOrientRelation")); break;
case PROP_VERT_ORIENT : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("VertOrient")); break;
case PROP_VERT_ORIENT_POSITTION : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("VertOrientPosition")); break;
case PROP_VERT_ORIENT_RELATION : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("VertOrientRelation")); break;
case PROP_GRAPHIC_CROP : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("GraphicCrop")); break;
case PROP_SIZE100th_M_M : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Size100thMM")); break;
case PROP_SIZE_PIXEL : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("SizePixel")); break;
case PROP_SURROUND : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Surround")); break;
case PROP_SURROUND_CONTOUR : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("SurroundContour")); break;
case PROP_ADJUST_CONTRAST : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("AdjustContrast")); break;
case PROP_ADJUST_LUMINANCE : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("AdjustLuminance")); break;
case PROP_GRAPHIC_COLOR_MODE : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("GraphicColorMode")); break;
case PROP_GAMMA : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Gamma")); break;
case PROP_HORI_MIRRORED_ON_EVEN_PAGES: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("HoriMirroredOnEvenPages")); break;
case PROP_HORI_MIRRORED_ON_ODD_PAGES : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("HoriMirroredOnOddPages")); break;
case PROP_VERT_MIRRORED : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("VertMirrored")); break;
// case : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("")); break;
// case : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("")); break;
}
::std::pair<PropertyNameMap_t::iterator,bool> aInsertIt =
......
......@@ -4,9 +4,9 @@
*
* $RCSfile: PropertyIds.hxx,v $
*
* $Revision: 1.2 $
* $Revision: 1.3 $
*
* last change: $Author: os $ $Date: 2006-11-02 12:37:24 $
* last change: $Author: os $ $Date: 2006-11-20 12:19:04 $
*
* The Contents of this file are made available subject to
* the terms of GNU Lesser General Public License Version 2.1.
......@@ -130,13 +130,35 @@ enum PropertyIds
/*88*/ , PROP_TITLE
/*89*/ , PROP_CONTENT
/*90*/ , PROP_DATA_COLUMN_NAME
///*91*/ , PROP_
///*92*/ , PROP_
///*93*/ , PROP_
///*94*/ , PROP_
///*95*/ , PROP_
///*96*/ , PROP_
///*97*/ , PROP_
/*91*/ , PROP_INPUT_STREAM
/*92*/ , PROP_GRAPHIC
/*93*/ , PROP_ANCHOR_TYPE
/*94*/ , PROP_SIZE
/*95*/ , PROP_HORI_ORIENT
/*96*/ , PROP_HORI_ORIENT_POSITTION
/*97*/ , PROP_HORI_ORIENT_RELATION
/*98*/ , PROP_VERT_ORIENT
/*99*/ , PROP_VERT_ORIENT_POSITTION
/*100*/ ,PROP_VERT_ORIENT_RELATION
/*101*/ , PROP_GRAPHIC_CROP
/*102*/ , PROP_SIZE100th_M_M
/*103*/ , PROP_SIZE_PIXEL
/*104*/ , PROP_SURROUND
/*105*/ , PROP_SURROUND_CONTOUR
/*106*/ , PROP_ADJUST_CONTRAST
/*107*/ , PROP_ADJUST_LUMINANCE
/*108*/ , PROP_GRAPHIC_COLOR_MODE
/*109*/ , PROP_GAMMA
/*110*/ , PROP_HORI_MIRRORED_ON_EVEN_PAGES
/*111*/ , PROP_HORI_MIRRORED_ON_ODD_PAGES
/*112*/ , PROP_VERT_MIRRORED
///*113*/ , PROP_
///*114*/ , PROP_
///*115*/ , PROP_
///*116*/ , PROP_
///*117*/ , PROP_
///*118*/ , PROP_
///*119*/ , PROP_
};
struct PropertyNameSupplier_Impl;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment