/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /************************************************************************* * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License version 3 * only, as published by the Free Software Foundation. * * OpenOffice.org 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 version 3 for more details * (a copy is included in the LICENSE file that accompanied this code). * * You should have received a copy of the GNU Lesser General Public License * version 3 along with OpenOffice.org. If not, see * * for a copy of the LGPLv3 License. * ************************************************************************/ #ifndef _TBLAFMT_HXX #define _TBLAFMT_HXX /************************************************************************* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! The structure of table auto formatting should not be changed. It is used by different code of Writer and Calc. If a change is necessary, the source code of both applications must be changed! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! **************************************************************************/ #include #include "hintids.hxx" // _Always_ before the solar-items! #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "swdllapi.h" struct SwAfVersions; class SvNumberFormatter; class SwBoxAutoFmt { // common attributes of Calc and Writer // --- from 641 on: CJK and CTL font settings SvxFontItem aFont; SvxFontHeightItem aHeight; SvxWeightItem aWeight; SvxPostureItem aPosture; SvxFontItem aCJKFont; SvxFontHeightItem aCJKHeight; SvxWeightItem aCJKWeight; SvxPostureItem aCJKPosture; SvxFontItem aCTLFont; SvxFontHeightItem aCTLHeight; SvxWeightItem aCTLWeight; SvxPostureItem aCTLPosture; SvxUnderlineItem aUnderline; SvxOverlineItem aOverline; SvxCrossedOutItem aCrossedOut; SvxContourItem aContour; SvxShadowedItem aShadowed; SvxColorItem aColor; SvxBoxItem aBox; SvxLineItem aTLBR; SvxLineItem aBLTR; SvxBrushItem aBackground; // Writer specific SvxAdjustItem aAdjust; // Calc specific SvxHorJustifyItem aHorJustify; SvxVerJustifyItem aVerJustify; SfxBoolItem aStacked; SvxMarginItem aMargin; SfxBoolItem aLinebreak; SfxInt32Item aRotateAngle; SvxRotateModeItem aRotateMode; // number format String sNumFmtString; LanguageType eSysLanguage, eNumFmtLanguage; public: SwBoxAutoFmt(); SwBoxAutoFmt( const SwBoxAutoFmt& rNew ); ~SwBoxAutoFmt(); int operator==( const SwBoxAutoFmt& rCmp ) const; SwBoxAutoFmt& operator=( const SwBoxAutoFmt& rNew ); // The get-methods. const SvxFontItem &GetFont() const { return aFont; } const SvxFontHeightItem &GetHeight() const { return aHeight; } const SvxWeightItem &GetWeight() const { return aWeight; } const SvxPostureItem &GetPosture() const { return aPosture; } const SvxFontItem &GetCJKFont() const { return aCJKFont; } const SvxFontHeightItem &GetCJKHeight() const { return aCJKHeight; } const SvxWeightItem &GetCJKWeight() const { return aCJKWeight; } const SvxPostureItem &GetCJKPosture() const { return aCJKPosture; } const SvxFontItem &GetCTLFont() const { return aCTLFont; } const SvxFontHeightItem &GetCTLHeight() const { return aCTLHeight; } const SvxWeightItem &GetCTLWeight() const { return aCTLWeight; } const SvxPostureItem &GetCTLPosture() const { return aCTLPosture; } const SvxUnderlineItem &GetUnderline() const { return aUnderline; } const SvxOverlineItem &GetOverline() const { return aOverline; } const SvxCrossedOutItem &GetCrossedOut() const { return aCrossedOut; } const SvxContourItem &GetContour() const { return aContour; } const SvxShadowedItem &GetShadowed() const { return aShadowed; } const SvxColorItem &GetColor() const { return aColor; } const SvxAdjustItem &GetAdjust() const { return aAdjust; } const SvxBoxItem &GetBox() const { return aBox; } const SvxLineItem &GetTLBR() const { return aTLBR; } const SvxLineItem &GetBLTR() const { return aBLTR; } const SvxBrushItem &GetBackground() const { return aBackground; } void GetValueFormat( String& rFmt, LanguageType& rLng, LanguageType& rSys ) const { rFmt = sNumFmtString; rLng = eNumFmtLanguage; rSys = eSysLanguage; } // The set-methods. void SetFont( const SvxFontItem& rNew ) { aFont = rNew; } void SetHeight( const SvxFontHeightItem& rNew ) { aHeight = rNew; } void SetWeight( const SvxWeightItem& rNew ) { aWeight = rNew; } void SetPosture( const SvxPostureItem& rNew ) { aPosture = rNew; } void SetCJKFont( const SvxFontItem& rNew ) { aCJKFont = rNew; } void SetCJKHeight( const SvxFontHeightItem& rNew ) { aCJKHeight = rNew; } void SetCJKWeight( const SvxWeightItem& rNew ) { aCJKWeight = rNew; } void SetCJKPosture( const SvxPostureItem& rNew ) { aCJKPosture = rNew; } void SetCTLFont( const SvxFontItem& rNew ) { aCTLFont = rNew; } void SetCTLHeight( const SvxFontHeightItem& rNew ) { aCTLHeight = rNew; } void SetCTLWeight( const SvxWeightItem& rNew ) { aCTLWeight = rNew; } void SetCTLPosture( const SvxPostureItem& rNew ) { aCTLPosture = rNew; } void SetUnderline( const SvxUnderlineItem& rNew ) { aUnderline = rNew; } void SetOverline( const SvxOverlineItem& rNew ) { aOverline = rNew; } void SetCrossedOut( const SvxCrossedOutItem& rNew ) { aCrossedOut = rNew; } void SetContour( const SvxContourItem& rNew ) { aContour = rNew; } void SetShadowed( const SvxShadowedItem& rNew ) { aShadowed = rNew; } void SetColor( const SvxColorItem& rNew ) { aColor = rNew; } void SetAdjust( const SvxAdjustItem& rNew ) { aAdjust.SetAdjust( rNew.GetAdjust() ); aAdjust.SetOneWord( rNew.GetOneWord() ); aAdjust.SetLastBlock( rNew.GetLastBlock() ); } void SetBox( const SvxBoxItem& rNew ) { aBox = rNew; } void SetBackground( const SvxBrushItem& rNew ) { aBackground = rNew; } void SetValueFormat( const String& rFmt, LanguageType eLng, LanguageType eSys ) { sNumFmtString = rFmt; eNumFmtLanguage = eLng; eSysLanguage = eSys; } sal_Bool Load( SvStream& rStream, const SwAfVersions& rVersions, sal_uInt16 nVer ); sal_Bool Save( SvStream& rStream ) const; sal_Bool SaveVerionNo( SvStream& rStream ) const; #ifdef READ_OLDVERS // load old version. sal_Bool LoadOld( SvStream& rStream, sal_uInt16 aLoadVer[] ); #endif }; class SW_DLLPUBLIC SwTableAutoFmt { friend void _FinitCore(); // To destroy dflt. pointer. static SwBoxAutoFmt* pDfltBoxAutoFmt; String aName; sal_uInt16 nStrResId; // Common flags of Calc and Writer. sal_Bool bInclFont : 1; sal_Bool bInclJustify : 1; sal_Bool bInclFrame : 1; sal_Bool bInclBackground : 1; sal_Bool bInclValueFormat : 1; // Calc specific flags. sal_Bool bInclWidthHeight : 1; SwBoxAutoFmt* aBoxAutoFmt[ 16 ]; public: SwTableAutoFmt( const String& rName ); SwTableAutoFmt( const SwTableAutoFmt& rNew ); ~SwTableAutoFmt(); SwTableAutoFmt& operator=( const SwTableAutoFmt& rNew ); void SetBoxFmt( const SwBoxAutoFmt& rNew, sal_uInt8 nPos ); const SwBoxAutoFmt& GetBoxFmt( sal_uInt8 nPos ) const; void SetName( const String& rNew ) { aName = rNew; nStrResId = USHRT_MAX; } const String& GetName() const { return aName; } enum UpdateFlags { UPDATE_CHAR = 1, UPDATE_BOX = 2, UPDATE_ALL = 3 }; SwBoxAutoFmt& UpdateFromSet( sal_uInt8 nPos, const SfxItemSet& rSet, UpdateFlags eFlags, SvNumberFormatter* ); void UpdateToSet( sal_uInt8 nPos, SfxItemSet& rSet, UpdateFlags eFlags, SvNumberFormatter* ) const ; sal_Bool IsFont() const { return bInclFont; } sal_Bool IsJustify() const { return bInclJustify; } sal_Bool IsFrame() const { return bInclFrame; } sal_Bool IsBackground() const { return bInclBackground; } sal_Bool IsValueFormat() const { return bInclValueFormat; } void SetFont( const sal_Bool bNew ) { bInclFont = bNew; } void SetJustify( const sal_Bool bNew ) { bInclJustify = bNew; } void SetFrame( const sal_Bool bNew ) { bInclFrame = bNew; } void SetBackground( const sal_Bool bNew ) { bInclBackground = bNew; } void SetValueFormat( const sal_Bool bNew ) { bInclValueFormat = bNew; } void SetWidthHeight( const sal_Bool bNew ) { bInclWidthHeight = bNew; } sal_Bool Load( SvStream& rStream, const SwAfVersions& ); sal_Bool Save( SvStream& rStream ) const; #ifdef READ_OLDVERS // Load old versions. sal_Bool LoadOld( SvStream& rStream, sal_uInt16 aLoadVer[] ); #endif }; typedef SwTableAutoFmt* SwTableAutoFmtPtr ; SV_DECL_PTRARR_DEL( _SwTableAutoFmtTbl, SwTableAutoFmtPtr, 1, 5 ) class SW_DLLPUBLIC SwTableAutoFmtTbl : public _SwTableAutoFmtTbl { SW_DLLPRIVATE sal_Bool Load( SvStream& rStream ); SW_DLLPRIVATE sal_Bool Save( SvStream& rStream ) const; public: SwTableAutoFmtTbl(); sal_Bool Load(); sal_Bool Save() const; }; #endif /* vim:set shiftwidth=4 softtabstop=4 expandtab: */