From ed5640d8b587fbcfed7dd7967f3de04b37a76f26 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 11:06:44 +0200 Subject: Adding upstream version 4:7.4.7. Signed-off-by: Daniel Baumann --- lotuswordpro/source/filter/lwpparaproperty.cxx | 269 +++++++++++++++++++++++++ 1 file changed, 269 insertions(+) create mode 100644 lotuswordpro/source/filter/lwpparaproperty.cxx (limited to 'lotuswordpro/source/filter/lwpparaproperty.cxx') diff --git a/lotuswordpro/source/filter/lwpparaproperty.cxx b/lotuswordpro/source/filter/lwpparaproperty.cxx new file mode 100644 index 000000000..a60b291c1 --- /dev/null +++ b/lotuswordpro/source/filter/lwpparaproperty.cxx @@ -0,0 +1,269 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: IBM Corporation + * + * Copyright: 2008 by IBM Corporation + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ +/************************************************************************* + * @file + * For LWP filter architecture prototype + ************************************************************************/ + +#include "lwpparaproperty.hxx" +#include +#include "lwppara.hxx" + +void LwpPara::ReadPropertyList(LwpObjectStream* pFile) +{ + LwpParaProperty* NewProp= nullptr; + + for(;;) + { + bool bFailure; + + sal_uInt32 tag = pFile->QuickReaduInt32(&bFailure); + // Keep reading properties until we hit the end tag or + // the stream ends + if (bFailure || tag == TAG_ENDSUBOBJ) + break; + + // Get the length of this property + sal_uInt16 Len = pFile->QuickReaduInt16(&bFailure); + + if (bFailure) + break; + + // Create whatever kind of tag we just found + switch (tag) + { + case TAG_PARA_ALIGN: + NewProp = new LwpParaAlignProperty(pFile); + break; + + case TAG_PARA_INDENT: + NewProp = new LwpParaIndentProperty(pFile); + break; + + case TAG_PARA_SPACING: + NewProp = new LwpParaSpacingProperty(pFile); + break; + + case TAG_PARA_BORDER: + NewProp = new LwpParaBorderProperty(pFile); + break; + + case TAG_PARA_BACKGROUND: + NewProp = new LwpParaBackGroundProperty(pFile); + break; + + case TAG_PARA_BREAKS: + NewProp = new LwpParaBreaksProperty(pFile); + break; + + case TAG_PARA_BULLET: + NewProp = new LwpParaBulletProperty(pFile); + SetBulletFlag(true); + break; + + case TAG_PARA_NUMBERING: + NewProp = new LwpParaNumberingProperty(pFile); + break; + + case TAG_PARA_TAB: + NewProp = new LwpParaTabRackProperty(pFile); + break; + + default: + pFile->SeekRel(Len); + NewProp = nullptr; + break; + } + // Stick it at the beginning of the list + if (NewProp) + { + m_vProps.emplace(m_vProps.begin(), NewProp); + } + } +} + +LwpParaAlignProperty::LwpParaAlignProperty(LwpObjectStream* pFile) +{ + LwpObjectID align; + align.ReadIndexed(pFile); + + rtl::Reference xAlignmentPiece(dynamic_cast(align.obj(VO_ALIGNMENTPIECE).get())); + m_pAlignment = xAlignmentPiece.is() ? dynamic_cast(xAlignmentPiece->GetOverride()) : nullptr; + +} + +LwpParaAlignProperty::~LwpParaAlignProperty() +{ +} + +sal_uInt32 LwpParaAlignProperty::GetType() +{ + return PP_LOCAL_ALIGN; +} + +LwpParaIndentProperty::LwpParaIndentProperty(LwpObjectStream* pFile) +{ + m_aIndentID.ReadIndexed(pFile); + + LwpIndentPiece *pIndentPiece = dynamic_cast(m_aIndentID.obj(VO_INDENTPIECE).get()); + m_pIndent = pIndentPiece ? dynamic_cast(pIndentPiece->GetOverride()) : nullptr; +} + +LwpParaIndentProperty::~LwpParaIndentProperty() +{ +} + +sal_uInt32 LwpParaIndentProperty::GetType() +{ + return PP_LOCAL_INDENT; +} + +LwpParaSpacingProperty::LwpParaSpacingProperty(LwpObjectStream* pFile) +{ + LwpObjectID spacing; + spacing.ReadIndexed(pFile); + + LwpSpacingPiece *pSpacingPiece = dynamic_cast(spacing.obj(VO_SPACINGPIECE).get()); + m_pSpacing = pSpacingPiece ? dynamic_cast(pSpacingPiece->GetOverride()) : nullptr; +} + +LwpParaSpacingProperty::~LwpParaSpacingProperty() +{ +} + +sal_uInt32 LwpParaSpacingProperty::GetType() +{ + return PP_LOCAL_SPACING; +} + +// 01/25/2004 +LwpParaBorderProperty::LwpParaBorderProperty(LwpObjectStream* pStrm) : +m_pParaBorderOverride(nullptr) +{ + LwpObjectID aParaBorder; + aParaBorder.ReadIndexed(pStrm); + + if (!aParaBorder.IsNull()) + { + LwpParaBorderPiece *pParaBorderPiece = dynamic_cast(aParaBorder.obj().get()); + m_pParaBorderOverride = pParaBorderPiece ? dynamic_cast(pParaBorderPiece->GetOverride()) : nullptr; + } +} + +LwpParaBreaksProperty::LwpParaBreaksProperty(LwpObjectStream* pStrm) : +m_pBreaks(nullptr) +{ + LwpObjectID aBreaks; + aBreaks.ReadIndexed(pStrm); + + if (!aBreaks.IsNull()) + { + LwpBreaksPiece *pBreaksPiece = dynamic_cast(aBreaks.obj().get()); + m_pBreaks = pBreaksPiece ? dynamic_cast(pBreaksPiece->GetOverride()) : nullptr; + } +} + +LwpParaBulletProperty::LwpParaBulletProperty(LwpObjectStream* pStrm) : +m_pBullet(new LwpBulletOverride) +{ + m_pBullet->Read(pStrm); +} + +LwpParaBulletProperty::~LwpParaBulletProperty() +{ +} + +LwpParaNumberingProperty::LwpParaNumberingProperty(LwpObjectStream * pStrm) + : m_pNumberingOverride(nullptr) +{ + LwpObjectID aNumberingPiece; + aNumberingPiece.ReadIndexed(pStrm); + if (aNumberingPiece.IsNull()) + { + return; + } + + LwpNumberingPiece *pNumberingPiece = dynamic_cast(aNumberingPiece.obj(VO_NUMBERINGPIECE).get()); + m_pNumberingOverride = pNumberingPiece ? dynamic_cast(pNumberingPiece->GetOverride()) : nullptr; +} + +LwpParaTabRackProperty::LwpParaTabRackProperty(LwpObjectStream* pFile) +{ + LwpObjectID aTabRack; + aTabRack.ReadIndexed(pFile); + + LwpTabPiece *pTabPiece = dynamic_cast(aTabRack.obj().get()); + m_pTabOverride = pTabPiece ? dynamic_cast(pTabPiece->GetOverride()) : nullptr; +} + +LwpParaTabRackProperty::~LwpParaTabRackProperty() +{ +} + +LwpParaBackGroundProperty::LwpParaBackGroundProperty(LwpObjectStream* pFile) +{ + LwpObjectID background; + background.ReadIndexed(pFile); + + LwpBackgroundPiece *pBackgroundPiece = dynamic_cast(background.obj().get()); + m_pBackground = pBackgroundPiece ? dynamic_cast(pBackgroundPiece->GetOverride()) : nullptr; +} + +LwpParaBackGroundProperty::~LwpParaBackGroundProperty() +{ +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ -- cgit v1.2.3