summaryrefslogtreecommitdiff
path: root/sc/inc/autoform.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'sc/inc/autoform.hxx')
-rw-r--r--sc/inc/autoform.hxx282
1 files changed, 282 insertions, 0 deletions
diff --git a/sc/inc/autoform.hxx b/sc/inc/autoform.hxx
new file mode 100644
index 000000000000..094f618fbc7c
--- /dev/null
+++ b/sc/inc/autoform.hxx
@@ -0,0 +1,282 @@
+/*************************************************************************
+ *
+ * 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
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef SC_AUTOFORM_HXX
+#define SC_AUTOFORM_HXX
+
+/*************************************************************************
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+JP 20.07.95:
+
+ Die akt. Struktur der Autoformatierung darf nicht mehr veraendert werden.
+ Diese wird durch unterschiedlichen Code vom StartWriter und vom StarCalc
+ eingelesen/geschrieben.
+ Sollte sich doch mal eine Aenderung nicht vermeiden lassen, dann auf
+ jedenfall in beiden Applikationen aendern.
+
+ The structure of table auto formatting should not 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 "scitems.hxx"
+#include <editeng/adjitem.hxx>
+#include <svx/algitem.hxx>
+#include <editeng/boxitem.hxx>
+#include <editeng/brshitem.hxx>
+#include <editeng/cntritem.hxx>
+#include <editeng/colritem.hxx>
+#include <editeng/crsditem.hxx>
+#include <editeng/fhgtitem.hxx>
+#include <editeng/fontitem.hxx>
+#include <editeng/postitem.hxx>
+#include <editeng/shdditem.hxx>
+#include <editeng/udlnitem.hxx>
+#include <editeng/wghtitem.hxx>
+#include <svx/rotmodit.hxx>
+#include <svl/intitem.hxx>
+#include <editeng/bolnitem.hxx>
+#include "scdllapi.h"
+#include "collect.hxx"
+#include "global.hxx"
+#include "zforauto.hxx"
+
+
+struct ScAfVersions;
+
+
+/// Contains all items for one cell of a table autoformat.
+class ScAutoFormatDataField
+{
+private:
+ 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;
+ // from SO5, 504k on, rotated text
+ SfxInt32Item aRotateAngle;
+ SvxRotateModeItem aRotateMode;
+
+ // number format
+ ScNumFormatAbbrev aNumFormat;
+
+public:
+ ScAutoFormatDataField();
+ ScAutoFormatDataField( const ScAutoFormatDataField& rCopy );
+ ~ScAutoFormatDataField();
+
+ const ScNumFormatAbbrev& GetNumFormat() const { return aNumFormat; }
+ 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 SvxHorJustifyItem& GetHorJustify() const { return aHorJustify; }
+ const SvxVerJustifyItem& GetVerJustify() const { return aVerJustify; }
+ const SfxBoolItem& GetStacked() const { return aStacked; }
+ const SfxBoolItem& GetLinebreak() const { return aLinebreak; }
+ const SvxMarginItem& GetMargin() const { return aMargin; }
+ const SvxBoxItem& GetBox() const { return aBox; }
+ const SvxLineItem& GetTLBR() const { return aTLBR; }
+ const SvxLineItem& GetBLTR() const { return aBLTR; }
+ const SvxBrushItem& GetBackground() const { return aBackground; }
+ const SvxAdjustItem& GetAdjust() const { return aAdjust; }
+ const SfxInt32Item& GetRotateAngle() const { return aRotateAngle; }
+ const SvxRotateModeItem& GetRotateMode() const { return aRotateMode; }
+
+ void SetNumFormat( const ScNumFormatAbbrev& rNumFormat ) { aNumFormat = rNumFormat; }
+ void SetFont( const SvxFontItem& rFont ) { aFont = rFont; }
+ void SetHeight( const SvxFontHeightItem& rHeight ) { aHeight = rHeight; }
+ void SetWeight( const SvxWeightItem& rWeight ) { aWeight = rWeight; }
+ void SetPosture( const SvxPostureItem& rPosture ) { aPosture = rPosture; }
+ void SetCJKFont( const SvxFontItem& rCJKFont ) { aCJKFont = rCJKFont; }
+ void SetCJKHeight( const SvxFontHeightItem& rCJKHeight ) { aCJKHeight = rCJKHeight; }
+ void SetCJKWeight( const SvxWeightItem& rCJKWeight ) { aCJKWeight = rCJKWeight; }
+ void SetCJKPosture( const SvxPostureItem& rCJKPosture ) { aCJKPosture = rCJKPosture; }
+ void SetCTLFont( const SvxFontItem& rCTLFont ) { aCTLFont = rCTLFont; }
+ void SetCTLHeight( const SvxFontHeightItem& rCTLHeight ) { aCTLHeight = rCTLHeight; }
+ void SetCTLWeight( const SvxWeightItem& rCTLWeight ) { aCTLWeight = rCTLWeight; }
+ void SetCTLPosture( const SvxPostureItem& rCTLPosture ) { aCTLPosture = rCTLPosture; }
+ void SetUnderline( const SvxUnderlineItem& rUnderline ) { aUnderline = rUnderline; }
+ void SetOverline( const SvxOverlineItem& rOverline ) { aOverline = rOverline; }
+ void SetCrossedOut( const SvxCrossedOutItem& rCrossedOut ) { aCrossedOut = rCrossedOut; }
+ void SetContour( const SvxContourItem& rContour ) { aContour = rContour; }
+ void SetShadowed( const SvxShadowedItem& rShadowed ) { aShadowed = rShadowed; }
+ void SetColor( const SvxColorItem& rColor ) { aColor = rColor; }
+ void SetHorJustify( const SvxHorJustifyItem& rHorJustify ) { aHorJustify = rHorJustify; }
+ void SetVerJustify( const SvxVerJustifyItem& rVerJustify ) { aVerJustify = rVerJustify; }
+ void SetStacked( const SfxBoolItem& rStacked ) { aStacked.SetValue( rStacked.GetValue() ); }
+ void SetLinebreak( const SfxBoolItem& rLinebreak ) { aLinebreak.SetValue( rLinebreak.GetValue() ); }
+ void SetMargin( const SvxMarginItem& rMargin ) { aMargin = rMargin; }
+ void SetBox( const SvxBoxItem& rBox ) { aBox = rBox; }
+ void SetTLBR( const SvxLineItem& rTLBR ) { aTLBR = rTLBR; }
+ void SetBLTR( const SvxLineItem& rBLTR ) { aBLTR = rBLTR; }
+ void SetBackground( const SvxBrushItem& rBackground ) { aBackground = rBackground; }
+ void SetAdjust( const SvxAdjustItem& rAdjust );
+ void SetRotateAngle( const SfxInt32Item& rRotateAngle ) { aRotateAngle.SetValue( rRotateAngle.GetValue() ); }
+ void SetRotateMode( const SvxRotateModeItem& rRotateMode ) { aRotateMode.SetValue( rRotateMode.GetValue() ); }
+
+ BOOL Load( SvStream& rStream, const ScAfVersions& rVersions, USHORT nVer );
+ BOOL Save( SvStream& rStream );
+
+#ifdef READ_OLDVERS
+ BOOL LoadOld( SvStream& rStream, const ScAfVersions& rVersions );
+#endif
+};
+
+
+class SC_DLLPUBLIC ScAutoFormatData : public ScDataObject
+{
+private:
+ String aName;
+ USHORT nStrResId;
+ // common flags of Calc and Writer
+ BOOL bIncludeFont : 1;
+ BOOL bIncludeJustify : 1;
+ BOOL bIncludeFrame : 1;
+ BOOL bIncludeBackground : 1;
+
+ // Calc specific flags
+ BOOL bIncludeValueFormat : 1;
+ BOOL bIncludeWidthHeight : 1;
+
+ ScAutoFormatDataField** ppDataField;
+
+ SC_DLLPRIVATE ScAutoFormatDataField& GetField( USHORT nIndex );
+ SC_DLLPRIVATE const ScAutoFormatDataField& GetField( USHORT nIndex ) const;
+
+public:
+ ScAutoFormatData();
+ ScAutoFormatData( const ScAutoFormatData& rData );
+ virtual ~ScAutoFormatData();
+
+ virtual ScDataObject* Clone() const { return new ScAutoFormatData( *this ); }
+
+ void SetName( const String& rName ) { aName = rName; nStrResId = USHRT_MAX; }
+ void GetName( String& rName ) const { rName = aName; }
+
+ BOOL GetIncludeValueFormat() const { return bIncludeValueFormat; }
+ BOOL GetIncludeFont() const { return bIncludeFont; }
+ BOOL GetIncludeJustify() const { return bIncludeJustify; }
+ BOOL GetIncludeFrame() const { return bIncludeFrame; }
+ BOOL GetIncludeBackground() const { return bIncludeBackground; }
+ BOOL GetIncludeWidthHeight() const { return bIncludeWidthHeight; }
+
+ void SetIncludeValueFormat( BOOL bValueFormat ) { bIncludeValueFormat = bValueFormat; }
+ void SetIncludeFont( BOOL bFont ) { bIncludeFont = bFont; }
+ void SetIncludeJustify( BOOL bJustify ) { bIncludeJustify = bJustify; }
+ void SetIncludeFrame( BOOL bFrame ) { bIncludeFrame = bFrame; }
+ void SetIncludeBackground( BOOL bBackground ) { bIncludeBackground = bBackground; }
+ void SetIncludeWidthHeight( BOOL bWidthHeight ) { bIncludeWidthHeight = bWidthHeight; }
+
+ const SfxPoolItem* GetItem( USHORT nIndex, USHORT nWhich ) const;
+ void PutItem( USHORT nIndex, const SfxPoolItem& rItem );
+ void CopyItem( USHORT nToIndex, USHORT nFromIndex, USHORT nWhich );
+
+ const ScNumFormatAbbrev& GetNumFormat( USHORT nIndex ) const;
+
+ BOOL IsEqualData( USHORT nIndex1, USHORT nIndex2 ) const;
+
+ void FillToItemSet( USHORT nIndex, SfxItemSet& rItemSet, ScDocument& rDoc ) const;
+ void GetFromItemSet( USHORT nIndex, const SfxItemSet& rItemSet, const ScNumFormatAbbrev& rNumFormat );
+
+ BOOL Load( SvStream& rStream, const ScAfVersions& rVersions );
+ BOOL Save( SvStream& rStream );
+
+#ifdef READ_OLDVERS
+ BOOL LoadOld( SvStream& rStream, const ScAfVersions& rVersions );
+#endif
+};
+
+class SC_DLLPUBLIC ScAutoFormat : public ScSortedCollection
+{
+private:
+ BOOL bSaveLater;
+
+public:
+ ScAutoFormat( USHORT nLim = 4, USHORT nDel = 4, BOOL bDup = FALSE );
+ ScAutoFormat( const ScAutoFormat& AutoFormat );
+ virtual ~ScAutoFormat();
+ virtual ScDataObject* Clone() const { return new ScAutoFormat( *this ); }
+ ScAutoFormatData* operator[]( const USHORT nIndex ) const {return (ScAutoFormatData*)At( nIndex );}
+ virtual short Compare( ScDataObject* pKey1, ScDataObject* pKey2 ) const;
+ BOOL Load();
+ BOOL Save();
+ USHORT FindIndexPerName( const String& rName ) const;
+ void SetSaveLater( BOOL bSet );
+ BOOL IsSaveLater() const { return bSaveLater; }
+};
+
+
+#endif