summaryrefslogtreecommitdiff
path: root/svx/inc/svx/sdr/properties
diff options
context:
space:
mode:
Diffstat (limited to 'svx/inc/svx/sdr/properties')
-rw-r--r--svx/inc/svx/sdr/properties/attributeproperties.hxx101
-rw-r--r--svx/inc/svx/sdr/properties/captionproperties.hxx75
-rw-r--r--svx/inc/svx/sdr/properties/circleproperties.hxx75
-rw-r--r--svx/inc/svx/sdr/properties/connectorproperties.hxx71
-rw-r--r--svx/inc/svx/sdr/properties/customshapeproperties.hxx94
-rw-r--r--svx/inc/svx/sdr/properties/defaultproperties.hxx112
-rw-r--r--svx/inc/svx/sdr/properties/e3dcompoundproperties.hxx79
-rw-r--r--svx/inc/svx/sdr/properties/e3dextrudeproperties.hxx66
-rw-r--r--svx/inc/svx/sdr/properties/e3dlatheproperties.hxx66
-rw-r--r--svx/inc/svx/sdr/properties/e3dproperties.hxx72
-rw-r--r--svx/inc/svx/sdr/properties/e3dsceneproperties.hxx96
-rw-r--r--svx/inc/svx/sdr/properties/e3dsphereproperties.hxx66
-rw-r--r--svx/inc/svx/sdr/properties/emptyproperties.hxx104
-rw-r--r--svx/inc/svx/sdr/properties/graphicproperties.hxx75
-rw-r--r--svx/inc/svx/sdr/properties/groupproperties.hxx129
-rw-r--r--svx/inc/svx/sdr/properties/itemsettools.hxx76
-rw-r--r--svx/inc/svx/sdr/properties/measureproperties.hxx75
-rw-r--r--svx/inc/svx/sdr/properties/oleproperties.hxx69
-rw-r--r--svx/inc/svx/sdr/properties/pageproperties.hxx80
-rw-r--r--svx/inc/svx/sdr/properties/properties.hxx197
-rw-r--r--svx/inc/svx/sdr/properties/rectangleproperties.hxx69
-rw-r--r--svx/inc/svx/sdr/properties/textproperties.hxx97
22 files changed, 1944 insertions, 0 deletions
diff --git a/svx/inc/svx/sdr/properties/attributeproperties.hxx b/svx/inc/svx/sdr/properties/attributeproperties.hxx
new file mode 100644
index 000000000000..a8df62b52a67
--- /dev/null
+++ b/svx/inc/svx/sdr/properties/attributeproperties.hxx
@@ -0,0 +1,101 @@
+/*************************************************************************
+ *
+ * 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 _SDR_PROPERTIES_ATTRIBUTEPROPERTIES_HXX
+#define _SDR_PROPERTIES_ATTRIBUTEPROPERTIES_HXX
+
+#include <svl/lstner.hxx>
+#include <svx/sdr/properties/defaultproperties.hxx>
+#include "svx/svxdllapi.h"
+
+//////////////////////////////////////////////////////////////////////////////
+
+namespace sdr
+{
+ namespace properties
+ {
+ class SVX_DLLPUBLIC AttributeProperties : public DefaultProperties, public SfxListener
+ {
+ // add style sheet, do all the necessary handling
+ void ImpAddStyleSheet(SfxStyleSheet* pNewStyleSheet, sal_Bool bDontRemoveHardAttr);
+
+ // remove StyleSheet, do all the necessary handling
+ void ImpRemoveStyleSheet();
+
+ protected:
+ // the SytleSheet of this object
+ SfxStyleSheet* mpStyleSheet;
+
+ // create a new itemset
+ virtual SfxItemSet& CreateObjectSpecificItemSet(SfxItemPool& pPool);
+
+ // Do the ItemChange, may do special handling
+ virtual void ItemChange(const sal_uInt16 nWhich, const SfxPoolItem* pNewItem = 0);
+
+ // react on ItemSet changes
+ virtual void ItemSetChanged(const SfxItemSet& rSet);
+
+ public:
+ // basic constructor
+ AttributeProperties(SdrObject& rObj);
+
+ // constructor for copying, but using new object
+ AttributeProperties(const AttributeProperties& rProps, SdrObject& rObj);
+
+ // Clone() operator, normally just calls the local copy constructor
+ virtual BaseProperties& Clone(SdrObject& rObj) const;
+
+ // destructor
+ virtual ~AttributeProperties();
+
+ // set a new StyleSheet and broadcast
+ virtual void SetStyleSheet(SfxStyleSheet* pNewStyleSheet, sal_Bool bDontRemoveHardAttr);
+
+ // get the installed StyleSheet
+ virtual SfxStyleSheet* GetStyleSheet() const;
+
+ // Move properties to a new ItemPool.
+ virtual void MoveToItemPool(SfxItemPool* pSrcPool, SfxItemPool* pDestPool, SdrModel* pNewModel = 0L);
+
+ // Set new model.
+ virtual void SetModel(SdrModel* pOldModel, SdrModel* pNewModel);
+
+ // force all attributes which come from styles to hard attributes
+ // to be able to live without the style.
+ virtual void ForceStyleToHardAttributes();
+
+ // This is the Notify(...) from 2nd base class SfxListener
+ virtual void Notify(SfxBroadcaster& rBC, const SfxHint& rHint);
+ };
+ } // end of namespace properties
+} // end of namespace sdr
+
+//////////////////////////////////////////////////////////////////////////////
+
+#endif //_SDR_PROPERTIES_ATTRIBUTEPROPERTIES_HXX
+
+// eof
diff --git a/svx/inc/svx/sdr/properties/captionproperties.hxx b/svx/inc/svx/sdr/properties/captionproperties.hxx
new file mode 100644
index 000000000000..124bc19b67f1
--- /dev/null
+++ b/svx/inc/svx/sdr/properties/captionproperties.hxx
@@ -0,0 +1,75 @@
+/*************************************************************************
+ *
+ * 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 _SDR_PROPERTIES_CAPTIONPROPERTIES_HXX
+#define _SDR_PROPERTIES_CAPTIONPROPERTIES_HXX
+
+#include <svx/sdr/properties/rectangleproperties.hxx>
+
+//////////////////////////////////////////////////////////////////////////////
+
+namespace sdr
+{
+ namespace properties
+ {
+ class CaptionProperties : public RectangleProperties
+ {
+ protected:
+ // create a new itemset
+ virtual SfxItemSet& CreateObjectSpecificItemSet(SfxItemPool& rPool);
+
+ // react on ItemSet changes
+ virtual void ItemSetChanged(const SfxItemSet& rSet);
+
+ public:
+ // basic constructor
+ CaptionProperties(SdrObject& rObj);
+
+ // constructor for copying, but using new object
+ CaptionProperties(const CaptionProperties& rProps, SdrObject& rObj);
+
+ // destructor
+ virtual ~CaptionProperties();
+
+ // Clone() operator, normally just calls the local copy constructor
+ virtual BaseProperties& Clone(SdrObject& rObj) const;
+
+ // set a new StyleSheet and broadcast
+ virtual void SetStyleSheet(SfxStyleSheet* pNewStyleSheet, sal_Bool bDontRemoveHardAttr);
+
+ // force default attributes for a specific object type, called from
+ // DefaultProperties::GetObjectItemSet() if a new ItemSet is created
+ virtual void ForceDefaultAttributes();
+ };
+ } // end of namespace properties
+} // end of namespace sdr
+
+//////////////////////////////////////////////////////////////////////////////
+
+#endif // _SDR_PROPERTIES_CAPTIONPROPERTIES_HXX
+
+// eof
diff --git a/svx/inc/svx/sdr/properties/circleproperties.hxx b/svx/inc/svx/sdr/properties/circleproperties.hxx
new file mode 100644
index 000000000000..57efd50b0e01
--- /dev/null
+++ b/svx/inc/svx/sdr/properties/circleproperties.hxx
@@ -0,0 +1,75 @@
+/*************************************************************************
+ *
+ * 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 _SDR_PROPERTIES_CIRCLEPROPERTIES_HXX
+#define _SDR_PROPERTIES_CIRCLEPROPERTIES_HXX
+
+#include <svx/sdr/properties/rectangleproperties.hxx>
+
+//////////////////////////////////////////////////////////////////////////////
+
+namespace sdr
+{
+ namespace properties
+ {
+ class CircleProperties : public RectangleProperties
+ {
+ protected:
+ // create a new itemset
+ virtual SfxItemSet& CreateObjectSpecificItemSet(SfxItemPool& rPool);
+
+ // react on ItemSet changes
+ virtual void ItemSetChanged(const SfxItemSet& rSet);
+
+ public:
+ // basic constructor
+ CircleProperties(SdrObject& rObj);
+
+ // constructor for copying, but using new object
+ CircleProperties(const CircleProperties& rProps, SdrObject& rObj);
+
+ // destructor
+ virtual ~CircleProperties();
+
+ // Clone() operator, normally just calls the local copy constructor
+ virtual BaseProperties& Clone(SdrObject& rObj) const;
+
+ // set a new StyleSheet and broadcast
+ virtual void SetStyleSheet(SfxStyleSheet* pNewStyleSheet, sal_Bool bDontRemoveHardAttr);
+
+ // force default attributes for a specific object type, called from
+ // DefaultProperties::GetObjectItemSet() if a new ItemSet is created
+ virtual void ForceDefaultAttributes();
+ };
+ } // end of namespace properties
+} // end of namespace sdr
+
+//////////////////////////////////////////////////////////////////////////////
+
+#endif //_SDR_PROPERTIES_CIRCLEPROPERTIES_HXX
+
+// eof
diff --git a/svx/inc/svx/sdr/properties/connectorproperties.hxx b/svx/inc/svx/sdr/properties/connectorproperties.hxx
new file mode 100644
index 000000000000..30752f149200
--- /dev/null
+++ b/svx/inc/svx/sdr/properties/connectorproperties.hxx
@@ -0,0 +1,71 @@
+/*************************************************************************
+ *
+ * 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 _SDR_PROPERTIES_CONNECTORPROPERTIES_HXX
+#define _SDR_PROPERTIES_CONNECTORPROPERTIES_HXX
+
+#include <svx/sdr/properties/textproperties.hxx>
+
+//////////////////////////////////////////////////////////////////////////////
+
+namespace sdr
+{
+ namespace properties
+ {
+ class ConnectorProperties : public TextProperties
+ {
+ protected:
+ // create a new itemset
+ virtual SfxItemSet& CreateObjectSpecificItemSet(SfxItemPool& rPool);
+
+ // react on ItemSet changes
+ virtual void ItemSetChanged(const SfxItemSet& rSet);
+
+ public:
+ // basic constructor
+ ConnectorProperties(SdrObject& rObj);
+
+ // constructor for copying, but using new object
+ ConnectorProperties(const ConnectorProperties& rProps, SdrObject& rObj);
+
+ // destructor
+ virtual ~ConnectorProperties();
+
+ // Clone() operator, normally just calls the local copy constructor
+ virtual BaseProperties& Clone(SdrObject& rObj) const;
+
+ // set a new StyleSheet and broadcast
+ virtual void SetStyleSheet(SfxStyleSheet* pNewStyleSheet, sal_Bool bDontRemoveHardAttr);
+ };
+ } // end of namespace properties
+} // end of namespace sdr
+
+//////////////////////////////////////////////////////////////////////////////
+
+#endif //_SDR_PROPERTIES_CONNECTORPROPERTIES_HXX
+
+// eof
diff --git a/svx/inc/svx/sdr/properties/customshapeproperties.hxx b/svx/inc/svx/sdr/properties/customshapeproperties.hxx
new file mode 100644
index 000000000000..8adbf10107d9
--- /dev/null
+++ b/svx/inc/svx/sdr/properties/customshapeproperties.hxx
@@ -0,0 +1,94 @@
+/*************************************************************************
+ *
+ * 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 _SDR_PROPERTIES_CUSTOMSHAPEPROPERTIES_HXX
+#define _SDR_PROPERTIES_CUSTOMSHAPEPROPERTIES_HXX
+
+#include <svx/sdr/properties/textproperties.hxx>
+
+//////////////////////////////////////////////////////////////////////////////
+
+namespace sdr
+{
+ namespace properties
+ {
+ class CustomShapeProperties : public TextProperties
+ {
+ void UpdateTextFrameStatus();
+
+ protected:
+ // create a new itemset
+ virtual SfxItemSet& CreateObjectSpecificItemSet(SfxItemPool& rPool);
+
+ // test changeability for a single item
+ virtual sal_Bool AllowItemChange(const sal_uInt16 nWhich, const SfxPoolItem* pNewItem = 0) const;
+
+ // react on ItemSet changes
+ virtual void ItemSetChanged(const SfxItemSet& rSet);
+
+ // react on Item change
+ virtual void ItemChange(const sal_uInt16 nWhich, const SfxPoolItem* pNewItem);
+
+ // clear single item
+ virtual void ClearObjectItem(const sal_uInt16 nWhich = 0);
+
+ // clear single item direct, do not do any notifies or things like that.
+ // Also supports complete deleteion of items when default parameter 0 is used.
+ virtual void ClearObjectItemDirect(const sal_uInt16 nWhich = 0);
+
+ public:
+
+ // set a new StyleSheet and broadcast
+ virtual void SetStyleSheet(SfxStyleSheet* pNewStyleSheet, sal_Bool bDontRemoveHardAttr);
+
+ // force default attributes for a specific object type, called from
+ // DefaultProperties::GetObjectItemSet() if a new ItemSet is created
+ virtual void ForceDefaultAttributes();
+
+ // basic constructor
+ CustomShapeProperties(SdrObject& rObj);
+
+ // constructor for copying, but using new object
+ CustomShapeProperties(const CustomShapeProperties& rProps, SdrObject& rObj);
+
+ // destructor
+ virtual ~CustomShapeProperties();
+
+ // Clone() operator, normally just calls the local copy constructor
+ virtual BaseProperties& Clone(SdrObject& rObj) const;
+
+ // This is the notifyer from SfxListener
+ virtual void Notify(SfxBroadcaster& rBC, const SfxHint& rHint);
+ };
+ } // end of namespace properties
+} // end of namespace sdr
+
+//////////////////////////////////////////////////////////////////////////////
+
+#endif //_SDR_PROPERTIES_CUSTOMSHAPEPROPERTIES_HXX
+
+// eof
diff --git a/svx/inc/svx/sdr/properties/defaultproperties.hxx b/svx/inc/svx/sdr/properties/defaultproperties.hxx
new file mode 100644
index 000000000000..58aceccadf1a
--- /dev/null
+++ b/svx/inc/svx/sdr/properties/defaultproperties.hxx
@@ -0,0 +1,112 @@
+/*************************************************************************
+ *
+ * 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 _SDR_PROPERTIES_DEFAULTPROPERTIES_HXX
+#define _SDR_PROPERTIES_DEFAULTPROPERTIES_HXX
+
+#include <svx/sdr/properties/properties.hxx>
+#include "svx/svxdllapi.h"
+
+//////////////////////////////////////////////////////////////////////////////
+
+namespace sdr
+{
+ namespace properties
+ {
+ class SVX_DLLPUBLIC DefaultProperties : public BaseProperties
+ {
+ protected:
+ // the to be used ItemSet
+ SfxItemSet* mpItemSet;
+
+ // create a new itemset
+ virtual SfxItemSet& CreateObjectSpecificItemSet(SfxItemPool& rPool);
+
+ // test changeability for a single item
+ virtual sal_Bool AllowItemChange(const sal_uInt16 nWhich, const SfxPoolItem* pNewItem = 0) const;
+
+ // Do the ItemChange, may do special handling
+ virtual void ItemChange(const sal_uInt16 nWhich, const SfxPoolItem* pNewItem = 0);
+
+ // Called after ItemChange() is done for all items.
+ virtual void PostItemChange(const sal_uInt16 nWhich);
+
+ // react on ItemSet changes
+ virtual void ItemSetChanged(const SfxItemSet& rSet);
+
+ public:
+ // basic constructor
+ DefaultProperties(SdrObject& rObj);
+
+ // constructor for copying, but using new object
+ DefaultProperties(const DefaultProperties& rProps, SdrObject& rObj);
+
+ // destructor
+ virtual ~DefaultProperties();
+
+ // Clone() operator, normally just calls the local copy constructor
+ virtual BaseProperties& Clone(SdrObject& rObj) const;
+
+ // get itemset
+ virtual const SfxItemSet& GetObjectItemSet() const;
+
+ // set single item
+ virtual void SetObjectItem(const SfxPoolItem& rItem);
+
+ // set single item direct, do not do any notifies or things like that
+ virtual void SetObjectItemDirect(const SfxPoolItem& rItem);
+
+ // clear single item
+ virtual void ClearObjectItem(const sal_uInt16 nWhich = 0);
+
+ // clear single item direct, do not do any notifies or things like that.
+ // Also supports complete deleteion of items when default parameter 0 is used.
+ virtual void ClearObjectItemDirect(const sal_uInt16 nWhich = 0);
+
+ // set complete item set
+ virtual void SetObjectItemSet(const SfxItemSet& rSet);
+
+ // set a new StyleSheet and broadcast
+ virtual void SetStyleSheet(SfxStyleSheet* pNewStyleSheet, sal_Bool bDontRemoveHardAttr);
+
+ // get the installed StyleSheet
+ virtual SfxStyleSheet* GetStyleSheet() const;
+
+ // force default attributes for a specific object type, called from
+ // DefaultProperties::GetObjectItemSet() if a new ItemSet is created.
+ // Default implementation does nothing.
+ virtual void ForceDefaultAttributes();
+
+ // Scale the included ItemSet.
+ virtual void Scale(const Fraction& rScale);
+ };
+ } // end of namespace properties
+} // end of namespace sdr
+
+#endif //_SDR_PROPERTIES_DEFAULTPROPERTIES_HXX
+
+// eof
diff --git a/svx/inc/svx/sdr/properties/e3dcompoundproperties.hxx b/svx/inc/svx/sdr/properties/e3dcompoundproperties.hxx
new file mode 100644
index 000000000000..085da6720382
--- /dev/null
+++ b/svx/inc/svx/sdr/properties/e3dcompoundproperties.hxx
@@ -0,0 +1,79 @@
+/*************************************************************************
+ *
+ * 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 _SDR_PROPERTIES_E3DCOMPOUNDPROPERTIES_HXX
+#define _SDR_PROPERTIES_E3DCOMPOUNDPROPERTIES_HXX
+
+#include <svx/sdr/properties/e3dproperties.hxx>
+#include "svx/svxdllapi.h"
+
+//////////////////////////////////////////////////////////////////////////////
+
+namespace sdr
+{
+ namespace properties
+ {
+ class SVX_DLLPUBLIC E3dCompoundProperties : public E3dProperties
+ {
+ protected:
+ // Called after ItemChange() is done for all items.
+ virtual void PostItemChange(const sal_uInt16 nWhich);
+
+ public:
+ // basic constructor
+ E3dCompoundProperties(SdrObject& rObj);
+
+ // constructor for copying, but using new object
+ E3dCompoundProperties(const E3dCompoundProperties& rProps, SdrObject& rObj);
+
+ // destructor
+ virtual ~E3dCompoundProperties();
+
+ // Clone() operator, normally just calls the local copy constructor
+ virtual BaseProperties& Clone(SdrObject& rObj) const;
+
+ // get itemset
+ virtual const SfxItemSet& GetObjectItemSet() const;
+
+ // Get merged ItemSet. Normally, this maps directly to GetObjectItemSet(), but may
+ // be overloaded e.g for group objects to return a merged ItemSet of the object.
+ // When using this method the returned ItemSet may contain items in the state
+ // SFX_ITEM_DONTCARE which means there were several such items with different
+ // values.
+ virtual const SfxItemSet& GetMergedItemSet() const;
+
+ // Set merged ItemSet. Normally, this maps to SetObjectItemSet().
+ virtual void SetMergedItemSet(const SfxItemSet& rSet, sal_Bool bClearAllItems = sal_False);
+ };
+ } // end of namespace properties
+} // end of namespace sdr
+
+//////////////////////////////////////////////////////////////////////////////
+
+#endif // _SDR_PROPERTIES_E3DCOMPOUNDPROPERTIES_HXX
+
+// eof
diff --git a/svx/inc/svx/sdr/properties/e3dextrudeproperties.hxx b/svx/inc/svx/sdr/properties/e3dextrudeproperties.hxx
new file mode 100644
index 000000000000..f6baf589d642
--- /dev/null
+++ b/svx/inc/svx/sdr/properties/e3dextrudeproperties.hxx
@@ -0,0 +1,66 @@
+/*************************************************************************
+ *
+ * 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 _SDR_PROPERTIES_E3DEXTRUDEPROPERTIES_HXX
+#define _SDR_PROPERTIES_E3DEXTRUDEPROPERTIES_HXX
+
+#include <svx/sdr/properties/e3dcompoundproperties.hxx>
+#include "svx/svxdllapi.h"
+
+//////////////////////////////////////////////////////////////////////////////
+
+namespace sdr
+{
+ namespace properties
+ {
+ class SVX_DLLPUBLIC E3dExtrudeProperties : public E3dCompoundProperties
+ {
+ protected:
+ // Called after ItemChange() is done for all items.
+ virtual void PostItemChange(const sal_uInt16 nWhich);
+
+ public:
+ // basic constructor
+ E3dExtrudeProperties(SdrObject& rObj);
+
+ // constructor for copying, but using new object
+ E3dExtrudeProperties(const E3dExtrudeProperties& rProps, SdrObject& rObj);
+
+ // destructor
+ virtual ~E3dExtrudeProperties();
+
+ // Clone() operator, normally just calls the local copy constructor
+ virtual BaseProperties& Clone(SdrObject& rObj) const;
+ };
+ } // end of namespace properties
+} // end of namespace sdr
+
+//////////////////////////////////////////////////////////////////////////////
+
+#endif // _SDR_PROPERTIES_E3DEXTRUDEPROPERTIES_HXX
+
+// eof
diff --git a/svx/inc/svx/sdr/properties/e3dlatheproperties.hxx b/svx/inc/svx/sdr/properties/e3dlatheproperties.hxx
new file mode 100644
index 000000000000..37810b36de0e
--- /dev/null
+++ b/svx/inc/svx/sdr/properties/e3dlatheproperties.hxx
@@ -0,0 +1,66 @@
+/*************************************************************************
+ *
+ * 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 _SDR_PROPERTIES_E3DLATHEPROPERTIES_HXX
+#define _SDR_PROPERTIES_E3DLATHEPROPERTIES_HXX
+
+#include <svx/sdr/properties/e3dcompoundproperties.hxx>
+#include "svx/svxdllapi.h"
+
+//////////////////////////////////////////////////////////////////////////////
+
+namespace sdr
+{
+ namespace properties
+ {
+ class SVX_DLLPUBLIC E3dLatheProperties : public E3dCompoundProperties
+ {
+ protected:
+ // Called after ItemChange() is done for all items.
+ virtual void PostItemChange(const sal_uInt16 nWhich);
+
+ public:
+ // basic constructor
+ E3dLatheProperties(SdrObject& rObj);
+
+ // constructor for copying, but using new object
+ E3dLatheProperties(const E3dLatheProperties& rProps, SdrObject& rObj);
+
+ // destructor
+ virtual ~E3dLatheProperties();
+
+ // Clone() operator, normally just calls the local copy constructor
+ virtual BaseProperties& Clone(SdrObject& rObj) const;
+ };
+ } // end of namespace properties
+} // end of namespace sdr
+
+//////////////////////////////////////////////////////////////////////////////
+
+#endif // _SDR_PROPERTIES_E3DLATHEPROPERTIES_HXX
+
+// eof
diff --git a/svx/inc/svx/sdr/properties/e3dproperties.hxx b/svx/inc/svx/sdr/properties/e3dproperties.hxx
new file mode 100644
index 000000000000..957e37cac0b6
--- /dev/null
+++ b/svx/inc/svx/sdr/properties/e3dproperties.hxx
@@ -0,0 +1,72 @@
+/*************************************************************************
+ *
+ * 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 _SDR_PROPERTIES_E3DPROPERTIES_HXX
+#define _SDR_PROPERTIES_E3DPROPERTIES_HXX
+
+#include <svx/sdr/properties/attributeproperties.hxx>
+#include "svx/svxdllapi.h"
+
+//////////////////////////////////////////////////////////////////////////////
+
+namespace sdr
+{
+ namespace properties
+ {
+ class SVX_DLLPUBLIC E3dProperties : public AttributeProperties
+ {
+ protected:
+ // create a new itemset
+ virtual SfxItemSet& CreateObjectSpecificItemSet(SfxItemPool& rPool);
+
+ // react on ItemSet changes
+ virtual void ItemSetChanged(const SfxItemSet& rSet);
+
+ public:
+ // basic constructor
+ E3dProperties(SdrObject& rObj);
+
+ // constructor for copying, but using new object
+ E3dProperties(const E3dProperties& rProps, SdrObject& rObj);
+
+ // destructor
+ virtual ~E3dProperties();
+
+ // Clone() operator, normally just calls the local copy constructor
+ virtual BaseProperties& Clone(SdrObject& rObj) const;
+
+ // set a new StyleSheet and broadcast
+ virtual void SetStyleSheet(SfxStyleSheet* pNewStyleSheet, sal_Bool bDontRemoveHardAttr);
+ };
+ } // end of namespace properties
+} // end of namespace sdr
+
+//////////////////////////////////////////////////////////////////////////////
+
+#endif // _SDR_PROPERTIES_E3DPROPERTIES_HXX
+
+// eof
diff --git a/svx/inc/svx/sdr/properties/e3dsceneproperties.hxx b/svx/inc/svx/sdr/properties/e3dsceneproperties.hxx
new file mode 100644
index 000000000000..0ef471999fb6
--- /dev/null
+++ b/svx/inc/svx/sdr/properties/e3dsceneproperties.hxx
@@ -0,0 +1,96 @@
+/*************************************************************************
+ *
+ * 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 _SDR_PROPERTIES_E3DSCENEPROPERTIES_HXX
+#define _SDR_PROPERTIES_E3DSCENEPROPERTIES_HXX
+
+#include <svx/sdr/properties/e3dproperties.hxx>
+
+//////////////////////////////////////////////////////////////////////////////
+
+namespace sdr
+{
+ namespace properties
+ {
+ class E3dSceneProperties : public E3dProperties
+ {
+ protected:
+ // Called after ItemChange() is done for all items.
+ virtual void PostItemChange(const sal_uInt16 nWhich);
+
+ public:
+ // basic constructor
+ E3dSceneProperties(SdrObject& rObj);
+
+ // constructor for copying, but using new object
+ E3dSceneProperties(const E3dSceneProperties& rProps, SdrObject& rObj);
+
+ // destructor
+ virtual ~E3dSceneProperties();
+
+ // Clone() operator, normally just calls the local copy constructor
+ virtual BaseProperties& Clone(SdrObject& rObj) const;
+
+ // get itemset
+ virtual const SfxItemSet& GetObjectItemSet() const;
+
+ // get merged ItemSet. Normappl, this maps directly to GetObjectItemSet(), but may
+ // be overloaded e.g for group objects to return a merged ItemSet of the object.
+ // When using this method the returned ItemSet may contain items in the state
+ // SFX_ITEM_DONTCARE which means there were several such items with different
+ // values.
+ virtual const SfxItemSet& GetMergedItemSet() const;
+
+ // Set merged ItemSet. Normally, this maps to SetObjectItemSet().
+ virtual void SetMergedItemSet(const SfxItemSet& rSet, sal_Bool bClearAllItems = sal_False);
+
+ // Set a single item, iterate over hierarchies if necessary.
+ virtual void SetMergedItem(const SfxPoolItem& rItem);
+
+ // Clear a single item, iterate over hierarchies if necessary.
+ virtual void ClearMergedItem(const sal_uInt16 nWhich = 0);
+
+ // set a new StyleSheet and broadcast
+ virtual void SetStyleSheet(SfxStyleSheet* pNewStyleSheet, sal_Bool bDontRemoveHardAttr);
+
+ // get the installed StyleSheet
+ virtual SfxStyleSheet* GetStyleSheet() const;
+
+ // Move properties to a new ItemPool. Default implementation does nothing.
+ virtual void MoveToItemPool(SfxItemPool* pSrcPool, SfxItemPool* pDestPool, SdrModel* pNewModel = 0L);
+
+ // Special for scene:
+ void SetSceneItemsFromCamera();
+ };
+ } // end of namespace properties
+} // end of namespace sdr
+
+//////////////////////////////////////////////////////////////////////////////
+
+#endif // _SDR_PROPERTIES_E3DSCENEPROPERTIES_HXX
+
+// eof
diff --git a/svx/inc/svx/sdr/properties/e3dsphereproperties.hxx b/svx/inc/svx/sdr/properties/e3dsphereproperties.hxx
new file mode 100644
index 000000000000..73b68b04e418
--- /dev/null
+++ b/svx/inc/svx/sdr/properties/e3dsphereproperties.hxx
@@ -0,0 +1,66 @@
+/*************************************************************************
+ *
+ * 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 _SDR_PROPERTIES_E3DSPHEREPROPERTIES_HXX
+#define _SDR_PROPERTIES_E3DSPHEREPROPERTIES_HXX
+
+#include <svx/sdr/properties/e3dcompoundproperties.hxx>
+
+//////////////////////////////////////////////////////////////////////////////
+
+namespace sdr
+{
+ namespace properties
+ {
+ class E3dSphereProperties : public E3dCompoundProperties
+ {
+ protected:
+ // Called after ItemChange() is done for all items.
+ virtual void PostItemChange(const sal_uInt16 nWhich);
+
+ public:
+ // basic constructor
+ E3dSphereProperties(SdrObject& rObj);
+
+ // constructor for copying, but using new object
+ E3dSphereProperties(const E3dSphereProperties& rProps, SdrObject& rObj);
+
+ // destructor
+ virtual ~E3dSphereProperties();
+
+ // Clone() operator, normally just calls the local copy constructor
+ virtual BaseProperties& Clone(SdrObject& rObj) const;
+ };
+ } // end of namespace properties
+} // end of namespace sdr
+
+//////////////////////////////////////////////////////////////////////////////
+
+#endif // _SDR_PROPERTIES_E3DSPHEREPROPERTIES_HXX
+
+// eof
+
diff --git a/svx/inc/svx/sdr/properties/emptyproperties.hxx b/svx/inc/svx/sdr/properties/emptyproperties.hxx
new file mode 100644
index 000000000000..8cab0b03ca41
--- /dev/null
+++ b/svx/inc/svx/sdr/properties/emptyproperties.hxx
@@ -0,0 +1,104 @@
+/*************************************************************************
+ *
+ * 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 _SDR_PROPERTIES_EMPTYPROPERTIES_HXX
+#define _SDR_PROPERTIES_EMPTYPROPERTIES_HXX
+
+#include <svx/sdr/properties/properties.hxx>
+#include "svx/svxdllapi.h"
+
+//////////////////////////////////////////////////////////////////////////////
+
+namespace sdr
+{
+ namespace properties
+ {
+ class SVX_DLLPUBLIC EmptyProperties : public BaseProperties
+ {
+ protected:
+ // the to be used ItemSet
+ SfxItemSet* mpEmptyItemSet;
+
+ // create a new itemset
+ virtual SfxItemSet& CreateObjectSpecificItemSet(SfxItemPool& rPool);
+
+ // test changeability for a single item
+ virtual sal_Bool AllowItemChange(const sal_uInt16 nWhich, const SfxPoolItem* pNewItem = 0) const;
+
+ // Do the ItemChange, may do special handling
+ virtual void ItemChange(const sal_uInt16 nWhich, const SfxPoolItem* pNewItem = 0);
+
+ // Called after ItemChange() is done for all items.
+ virtual void PostItemChange(const sal_uInt16 nWhich);
+
+ // react on ItemSet changes
+ virtual void ItemSetChanged(const SfxItemSet& rSet);
+
+ public:
+ // basic constructor
+ EmptyProperties(SdrObject& rObj);
+
+ // constructor for copying, but using new object
+ EmptyProperties(const EmptyProperties& rProps, SdrObject& rObj);
+
+ // destructor
+ virtual ~EmptyProperties();
+
+ // Clone() operator, normally just calls the local copy constructor
+ virtual BaseProperties& Clone(SdrObject& rObj) const;
+
+ // get itemset
+ virtual const SfxItemSet& GetObjectItemSet() const;
+
+ // set single item
+ virtual void SetObjectItem(const SfxPoolItem& rItem);
+
+ // set single item direct, do not do any notifies or things like that
+ virtual void SetObjectItemDirect(const SfxPoolItem& rItem);
+
+ // clear single item
+ virtual void ClearObjectItem(const sal_uInt16 nWhich = 0);
+
+ // clear single item direct, do not do any notifies or things like that.
+ // Also supports complete deleteion of items when default parameter 0 is used.
+ virtual void ClearObjectItemDirect(const sal_uInt16 nWhich = 0);
+
+ // set complete item set
+ virtual void SetObjectItemSet(const SfxItemSet& rSet);
+
+ // set a new StyleSheet and broadcast
+ virtual void SetStyleSheet(SfxStyleSheet* pNewStyleSheet, sal_Bool bDontRemoveHardAttr);
+
+ // get the installed StyleSheet
+ virtual SfxStyleSheet* GetStyleSheet() const;
+ };
+ } // end of namespace properties
+} // end of namespace sdr
+
+#endif //_SDR_PROPERTIES_EMPTYPROPERTIES_HXX
+
+// eof
diff --git a/svx/inc/svx/sdr/properties/graphicproperties.hxx b/svx/inc/svx/sdr/properties/graphicproperties.hxx
new file mode 100644
index 000000000000..b3e04a67da55
--- /dev/null
+++ b/svx/inc/svx/sdr/properties/graphicproperties.hxx
@@ -0,0 +1,75 @@
+/*************************************************************************
+ *
+ * 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 _SDR_PROPERTIES_GRAPHICPROPERTIES_HXX
+#define _SDR_PROPERTIES_GRAPHICPROPERTIES_HXX
+
+#include <svx/sdr/properties/rectangleproperties.hxx>
+
+//////////////////////////////////////////////////////////////////////////////
+
+namespace sdr
+{
+ namespace properties
+ {
+ class GraphicProperties : public RectangleProperties
+ {
+ protected:
+ // create a new itemset
+ virtual SfxItemSet& CreateObjectSpecificItemSet(SfxItemPool& rPool);
+
+ // react on ItemSet changes
+ virtual void ItemSetChanged(const SfxItemSet& rSet);
+
+ public:
+ // basic constructor
+ GraphicProperties(SdrObject& rObj);
+
+ // constructor for copying, but using new object
+ GraphicProperties(const GraphicProperties& rProps, SdrObject& rObj);
+
+ // destructor
+ virtual ~GraphicProperties();
+
+ // Clone() operator, normally just calls the local copy constructor
+ virtual BaseProperties& Clone(SdrObject& rObj) const;
+
+ // set a new StyleSheet and broadcast
+ virtual void SetStyleSheet(SfxStyleSheet* pNewStyleSheet, sal_Bool bDontRemoveHardAttr);
+
+ // force default attributes for a specific object type, called from
+ // DefaultProperties::GetObjectItemSet() if a new ItemSet is created
+ virtual void ForceDefaultAttributes();
+ };
+ } // end of namespace properties
+} // end of namespace sdr
+
+//////////////////////////////////////////////////////////////////////////////
+
+#endif //_SDR_PROPERTIES_GRAPHICPROPERTIES_HXX
+
+// eof
diff --git a/svx/inc/svx/sdr/properties/groupproperties.hxx b/svx/inc/svx/sdr/properties/groupproperties.hxx
new file mode 100644
index 000000000000..f91f91db42d4
--- /dev/null
+++ b/svx/inc/svx/sdr/properties/groupproperties.hxx
@@ -0,0 +1,129 @@
+/*************************************************************************
+ *
+ * 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 _SDR_PROPERTIES_GROUPPROPERTIES_HXX
+#define _SDR_PROPERTIES_GROUPPROPERTIES_HXX
+
+#include <svx/sdr/properties/defaultproperties.hxx>
+
+/////////////////////////////////////////////////////////////////////////////
+
+namespace sdr
+{
+ namespace properties
+ {
+ class GroupProperties : public DefaultProperties
+ {
+ protected:
+ // create a new itemset
+ virtual SfxItemSet& CreateObjectSpecificItemSet(SfxItemPool& rPool);
+
+ // test changeability for a single item
+ virtual sal_Bool AllowItemChange(const sal_uInt16 nWhich, const SfxPoolItem* pNewItem = 0) const;
+
+ // Do the ItemChange, may do special handling
+ virtual void ItemChange(const sal_uInt16 nWhich, const SfxPoolItem* pNewItem = 0);
+
+ // Called after ItemChange() is done for all items.
+ virtual void PostItemChange(const sal_uInt16 nWhich);
+
+ // react on ItemSet changes
+ virtual void ItemSetChanged(const SfxItemSet& rSet);
+
+ public:
+ // basic constructor
+ GroupProperties(SdrObject& rObj);
+
+ // copy constructor
+ GroupProperties(const GroupProperties& rProps, SdrObject& rObj);
+
+ // destructor
+ virtual ~GroupProperties();
+
+ // Clone() operator, normally just calls the local copy constructor
+ virtual BaseProperties& Clone(SdrObject& rObj) const;
+
+ // get itemset
+ virtual const SfxItemSet& GetObjectItemSet() const;
+
+ // get merged ItemSet. Normally, this maps directly to GetObjectItemSet(), but may
+ // be overloaded e.g for group objects to return a merged ItemSet of the object.
+ // When using this method the returned ItemSet may contain items in the state
+ // SFX_ITEM_DONTCARE which means there were several such items with different
+ // values.
+ virtual const SfxItemSet& GetMergedItemSet() const;
+
+ // Set merged ItemSet. Normally, this maps to SetObjectItemSet().
+ virtual void SetMergedItemSet(const SfxItemSet& rSet, sal_Bool bClearAllItems = sal_False);
+
+ // set single item
+ virtual void SetObjectItem(const SfxPoolItem& rItem);
+
+ // set single item direct, do not do any notifies or things like that
+ virtual void SetObjectItemDirect(const SfxPoolItem& rItem);
+
+ // clear single item
+ virtual void ClearObjectItem(const sal_uInt16 nWhich = 0);
+
+ // clear single item direct, do not do any notifies or things like that.
+ // Also supports complete deleteion of items when default parameter 0 is used.
+ virtual void ClearObjectItemDirect(const sal_uInt16 nWhich = 0);
+
+ // Set a single item, iterate over hierarchies if necessary.
+ virtual void SetMergedItem(const SfxPoolItem& rItem);
+
+ // Clear a single item, iterate over hierarchies if necessary.
+ virtual void ClearMergedItem(const sal_uInt16 nWhich = 0);
+
+ // set complete item set
+ virtual void SetObjectItemSet(const SfxItemSet& rSet);
+
+ // set a new StyleSheet
+ virtual void SetStyleSheet(SfxStyleSheet* pNewStyleSheet, sal_Bool bDontRemoveHardAttr);
+
+ // get the local StyleSheet
+ virtual SfxStyleSheet* GetStyleSheet() const;
+
+ // force default attributes for a specific object type, called from
+ // DefaultProperties::GetObjectItemSet() if a new ItemSet is created
+ virtual void ForceDefaultAttributes();
+
+ // Move properties to a new ItemPool.
+ virtual void MoveToItemPool(SfxItemPool* pSrcPool, SfxItemPool* pDestPool, SdrModel* pNewModel = 0L);
+
+ // force all attributes which come from styles to hard attributes
+ // to be able to live without the style.
+ virtual void ForceStyleToHardAttributes();
+ };
+ } // end of namespace properties
+} // end of namespace sdr
+
+//////////////////////////////////////////////////////////////////////////////
+
+#endif //_SDR_PROPERTIES_GROUPPROPERTIES_HXX
+
+// eof
diff --git a/svx/inc/svx/sdr/properties/itemsettools.hxx b/svx/inc/svx/sdr/properties/itemsettools.hxx
new file mode 100644
index 000000000000..d52189ae93cc
--- /dev/null
+++ b/svx/inc/svx/sdr/properties/itemsettools.hxx
@@ -0,0 +1,76 @@
+/*************************************************************************
+ *
+ * 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 _SDR_PROPERTIES_ITEMSETTOOLS_HXX
+#define _SDR_PROPERTIES_ITEMSETTOOLS_HXX
+
+#include <sal/types.h>
+
+//////////////////////////////////////////////////////////////////////////////
+// predeclarations
+
+class SdrObject;
+class SfxItemSet;
+class Rectangle;
+class Fraction;
+
+//////////////////////////////////////////////////////////////////////////////
+// class to remember broadcast start positions
+namespace sdr
+{
+ namespace properties
+ {
+ class ItemChangeBroadcaster
+ {
+ sal_uInt32 mnCount;
+ void* mpData;
+
+ public:
+ ItemChangeBroadcaster(const SdrObject& rObj);
+ ~ItemChangeBroadcaster();
+
+ sal_uInt32 GetRectangleCount() const;
+ const Rectangle& GetRectangle(sal_uInt32 nIndex) const;
+ };
+ } // end of namespace properties
+} // end of namespace sdr
+
+//////////////////////////////////////////////////////////////////////////////
+
+namespace sdr
+{
+ namespace properties
+ {
+ void ScaleItemSet(SfxItemSet& rSet, const Fraction& rScale);
+ } // end of namespace properties
+} // end of namespace sdr
+
+//////////////////////////////////////////////////////////////////////////////
+
+#endif //_SDR_PROPERTIES_ITEMSETTOOLS_HXX
+
+// eof
diff --git a/svx/inc/svx/sdr/properties/measureproperties.hxx b/svx/inc/svx/sdr/properties/measureproperties.hxx
new file mode 100644
index 000000000000..a204ebfe9949
--- /dev/null
+++ b/svx/inc/svx/sdr/properties/measureproperties.hxx
@@ -0,0 +1,75 @@
+/*************************************************************************
+ *
+ * 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 _SDR_PROPERTIES_MEASUREPROPERTIES_HXX
+#define _SDR_PROPERTIES_MEASUREPROPERTIES_HXX
+
+#include <svx/sdr/properties/textproperties.hxx>
+
+//////////////////////////////////////////////////////////////////////////////
+
+namespace sdr
+{
+ namespace properties
+ {
+ class MeasureProperties : public TextProperties
+ {
+ protected:
+ // create a new itemset
+ virtual SfxItemSet& CreateObjectSpecificItemSet(SfxItemPool& rPool);
+
+ // react on ItemSet changes
+ virtual void ItemSetChanged(const SfxItemSet& rSet);
+
+ public:
+ // basic constructor
+ MeasureProperties(SdrObject& rObj);
+
+ // constructor for copying, but using new object
+ MeasureProperties(const MeasureProperties& rProps, SdrObject& rObj);
+
+ // destructor
+ virtual ~MeasureProperties();
+
+ // Clone() operator, normally just calls the local copy constructor
+ virtual BaseProperties& Clone(SdrObject& rObj) const;
+
+ // set a new StyleSheet and broadcast
+ virtual void SetStyleSheet(SfxStyleSheet* pNewStyleSheet, sal_Bool bDontRemoveHardAttr);
+
+ // force default attributes for a specific object type, called from
+ // DefaultProperties::GetObjectItemSet() if a new ItemSet is created
+ virtual void ForceDefaultAttributes();
+ };
+ } // end of namespace properties
+} // end of namespace sdr
+
+//////////////////////////////////////////////////////////////////////////////
+
+#endif //_SDR_PROPERTIES_MEASUREPROPERTIES_HXX
+
+// eof
diff --git a/svx/inc/svx/sdr/properties/oleproperties.hxx b/svx/inc/svx/sdr/properties/oleproperties.hxx
new file mode 100644
index 000000000000..009c375dff99
--- /dev/null
+++ b/svx/inc/svx/sdr/properties/oleproperties.hxx
@@ -0,0 +1,69 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: graphicproperties.hxx,v $
+ * $Revision: 1.6 $
+ *
+ * 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 _SDR_PROPERTIES_OLEPROPERTIES_HXX
+#define _SDR_PROPERTIES_OLEPROPERTIES_HXX
+
+#include <svx/sdr/properties/rectangleproperties.hxx>
+
+//////////////////////////////////////////////////////////////////////////////
+
+namespace sdr
+{
+ namespace properties
+ {
+ class OleProperties : public RectangleProperties
+ {
+ protected:
+ public:
+ // basic constructor
+ OleProperties(SdrObject& rObj);
+
+ // constructor for copying, but using new object
+ OleProperties(const OleProperties& rProps, SdrObject& rObj);
+
+ // destructor
+ virtual ~OleProperties();
+
+ // Clone() operator, normally just calls the local copy constructor
+ virtual BaseProperties& Clone(SdrObject& rObj) const;
+
+ // force default attributes for a specific object type, called from
+ // DefaultProperties::GetObjectItemSet() if a new ItemSet is created
+ virtual void ForceDefaultAttributes();
+ };
+ } // end of namespace properties
+} // end of namespace sdr
+
+//////////////////////////////////////////////////////////////////////////////
+
+#endif //_SDR_PROPERTIES_OLEPROPERTIES_HXX
+
+// eof
diff --git a/svx/inc/svx/sdr/properties/pageproperties.hxx b/svx/inc/svx/sdr/properties/pageproperties.hxx
new file mode 100644
index 000000000000..d85686b3bc5b
--- /dev/null
+++ b/svx/inc/svx/sdr/properties/pageproperties.hxx
@@ -0,0 +1,80 @@
+/*************************************************************************
+ *
+ * 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 _SDR_PROPERTIES_PAGEPROPERTIES_HXX
+#define _SDR_PROPERTIES_PAGEPROPERTIES_HXX
+
+#include <svx/sdr/properties/emptyproperties.hxx>
+
+//////////////////////////////////////////////////////////////////////////////
+
+namespace sdr
+{
+ namespace properties
+ {
+ class PageProperties : public EmptyProperties
+ {
+ protected:
+ // create a new object specific itemset with object specific ranges.
+ virtual SfxItemSet& CreateObjectSpecificItemSet(SfxItemPool& pPool);
+
+ // Do the ItemChange, may do special handling
+ virtual void ItemChange(const sal_uInt16 nWhich, const SfxPoolItem* pNewItem = 0);
+
+ public:
+ // basic constructor
+ PageProperties(SdrObject& rObj);
+
+ // constructor for copying, but using new object
+ PageProperties(const PageProperties& rProps, SdrObject& rObj);
+
+ // destructor
+ virtual ~PageProperties();
+
+ // Clone() operator, normally just calls the local copy constructor
+ virtual BaseProperties& Clone(SdrObject& rObj) const;
+
+ // get itemset. Overloaded here to allow creating the empty itemset
+ // without asserting
+ virtual const SfxItemSet& GetObjectItemSet() const;
+
+ // get the installed StyleSheet
+ virtual SfxStyleSheet* GetStyleSheet() const;
+
+ // clear single item
+ virtual void ClearObjectItem(const sal_uInt16 nWhich = 0);
+ };
+ } // end of namespace properties
+} // end of namespace sdr
+
+//////////////////////////////////////////////////////////////////////////////
+
+#endif //_SDR_PROPERTIES_PAGEPROPERTIES_HXX
+
+// eof
+
+
diff --git a/svx/inc/svx/sdr/properties/properties.hxx b/svx/inc/svx/sdr/properties/properties.hxx
new file mode 100644
index 000000000000..311c2ccfd1a5
--- /dev/null
+++ b/svx/inc/svx/sdr/properties/properties.hxx
@@ -0,0 +1,197 @@
+/*************************************************************************
+ *
+ * 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 _SDR_PROPERTIES_PROPERTIES_HXX
+#define _SDR_PROPERTIES_PROPERTIES_HXX
+
+#include <sal/types.h>
+#include "svx/svxdllapi.h"
+
+//////////////////////////////////////////////////////////////////////////////
+// predeclarations
+
+class SdrObject;
+class SfxItemSet;
+class SfxPoolItem;
+class SfxStyleSheet;
+class Fraction;
+class SfxItemPool;
+class SdrModel;
+
+namespace sdr
+{
+ namespace properties
+ {
+ class ItemChangeBroadcaster;
+ } // end of namespace properties
+} // end of namespace sdr
+
+//////////////////////////////////////////////////////////////////////////////
+
+namespace sdr
+{
+ namespace properties
+ {
+ class SVX_DLLPUBLIC BaseProperties
+ {
+ protected:
+ // the owner of this Properties. Set from constructor and not
+ // to be changed in any way.
+ SdrObject& mrObject;
+
+ // create a new object specific itemset with object specific ranges.
+ virtual SfxItemSet& CreateObjectSpecificItemSet(SfxItemPool& pPool) = 0;
+
+ // internal access to SdrObject
+ SdrObject& GetSdrObject() const
+ {
+ return mrObject;
+ }
+
+ // Test changeability for a single item. If a implementation wants to prevent
+ // changing an item this method may be overloaded.
+ virtual sal_Bool AllowItemChange(const sal_uInt16 nWhich, const SfxPoolItem* pNewItem = 0) const = 0;
+
+ // Do the internal ItemChange. If only nWhich is given, the item needs to be cleared.
+ // Also needs to handle if nWhich and pNewItem is 0, which means to clear all items.
+ virtual void ItemChange(const sal_uInt16 nWhich, const SfxPoolItem* pNewItem = 0) = 0;
+
+ // Called after ItemChange() is done for all items. Allows local reactions on
+ // specific item changes
+ virtual void PostItemChange(const sal_uInt16 nWhich) = 0;
+
+ // Internally react on ItemSet changes. The given ItemSet contains all changed items, the new ones.
+ virtual void ItemSetChanged(const SfxItemSet& rSet) = 0;
+
+ public:
+ // basic constructor, used from SdrObject.
+ BaseProperties(SdrObject& rObj);
+
+ // constructor for copying, but using new object. Used from the Clone()
+ // method.
+ BaseProperties(const BaseProperties& rProps, SdrObject& rObj);
+
+ // destructor
+ virtual ~BaseProperties();
+
+ // Clone() operator, normally just calls the local copy constructor,
+ // see above.
+ virtual BaseProperties& Clone(SdrObject& rObj) const = 0;
+
+ // Get the local ItemSet. This directly returns the local ItemSet of the object. No
+ // merging of ItemSets is done for e.g. Group objects.
+ virtual const SfxItemSet& GetObjectItemSet() const = 0;
+
+ // get merged ItemSet. Normappl, this maps directly to GetObjectItemSet(), but may
+ // be overloaded e.g for group objects to return a merged ItemSet of the object.
+ // When using this method the returned ItemSet may contain items in the state
+ // SFX_ITEM_DONTCARE which means there were several such items with different
+ // values.
+ virtual const SfxItemSet& GetMergedItemSet() const;
+
+ // Sets all items which are on state SFX_ITEM_SET in rSet at the local ItemSet.
+ // Uses AllowItemChange(), ItemChange(), PostItemChange() and ItemSetChanged() calls.
+ virtual void SetObjectItemSet(const SfxItemSet& rSet) = 0;
+
+ // Set merged ItemSet. Normally, this maps to SetObjectItemSet().
+ virtual void SetMergedItemSet(const SfxItemSet& rSet, sal_Bool bClearAllItems = sal_False);
+
+ // Set single item at the local ItemSet. Uses AllowItemChange(),
+ // ItemChange(), PostItemChange() and ItemSetChanged() calls.
+ virtual void SetObjectItem(const SfxPoolItem& rItem) = 0;
+
+ // Set a single item direct. Only uses AllowItemChange() and ItemChange(),
+ // but not PostItemChange() and ItemSetChanged() calls.
+ virtual void SetObjectItemDirect(const SfxPoolItem& rItem) = 0;
+
+ // Clear a single local item. Uses AllowItemChange(),
+ // ItemChange(), PostItemChange() and ItemSetChanged() calls.
+ virtual void ClearObjectItem(const sal_uInt16 nWhich = 0) = 0;
+
+ // Set a single item, iterate over hierarchies if necessary. Default
+ // Implementation falls back to ClearObjectItem().
+ virtual void SetMergedItem(const SfxPoolItem& rItem);
+
+ // Clear a single item, iterate over hierarchies if necessary. Default
+ // Implementation falls back to ClearObjectItem().
+ virtual void ClearMergedItem(const sal_uInt16 nWhich = 0);
+
+ // Clear single item direct. Only uses AllowItemChange() and ItemChange(),
+ // but not PostItemChange() and ItemSetChanged() calls.
+ // Also supports complete deletion of items when default parameter 0 is used.
+ virtual void ClearObjectItemDirect(const sal_uInt16 nWhich = 0) = 0;
+
+ // Set a new StyleSheet. Registers as listener at the StyleSheet to get knowledge
+ // of StyleSheet changes.
+ virtual void SetStyleSheet(SfxStyleSheet* pNewStyleSheet, sal_Bool bDontRemoveHardAttr) = 0;
+
+ // Get the installed StyleSheet.
+ virtual SfxStyleSheet* GetStyleSheet() const = 0;
+
+ // Scale the local ItemSet as far as it contains metric items. This needs to be
+ // overloaded to do it for hierarchical objects like e.g. groups.
+ virtual void Scale(const Fraction& rScale);
+
+ // Move local items to a new ItemPool. This needs to be
+ // overloaded to do it for hierarchical objects like e.g. groups.
+ virtual void MoveToItemPool(SfxItemPool* pSrcPool, SfxItemPool* pDestPool, SdrModel* pNewModel = 0L);
+
+ // Set new model.
+ virtual void SetModel(SdrModel* pOldModel, SdrModel* pNewModel);
+
+ // force all attributes which come from styles to hard attributes
+ // to be able to live without the style.
+ virtual void ForceStyleToHardAttributes();
+
+ // syntactical sugar for ItemSet accesses. Broadcasts before and after the changes
+ // to invalidate views in old and new BoundRects. As soon as the repaint mechanism
+ // will be changed these broadcasts will no longer be needed.
+ //void SetItemAndBroadcast(const SfxPoolItem& rItem);
+ //void ClearItemAndBroadcast(const sal_uInt16 nWhich = 0);
+ void SetMergedItemSetAndBroadcast(const SfxItemSet& rSet, sal_Bool bClearAllItems = sal_False);
+
+ // Just a convenient shortcut for GetObjectItemSet().Get(nWhich).
+ const SfxPoolItem& GetItem(const sal_uInt16 nWhich) const;
+
+ // support for convenient broadcasting. Used from SetMergedItemAndBroadcast(),
+ // ClearItemAndBroadcast() and SetItemSetAndBroadcast(), see above.
+ // But also from inside SdrObjects.
+ void BroadcastItemChange(const ItemChangeBroadcaster& rChange);
+
+ // #i101556# add versioning mechanism; used from e.g. text attribute set to
+ // allow detection of e.g. style sheet or single text attribute changes. The
+ // default implementation returns 0 (zero)
+ virtual sal_uInt32 getVersion() const;
+ };
+ } // end of namespace properties
+} // end of namespace sdr
+
+//////////////////////////////////////////////////////////////////////////////
+
+#endif //_SDR_PROPERTIES_PROPERTIES_HXX
+
+// eof
diff --git a/svx/inc/svx/sdr/properties/rectangleproperties.hxx b/svx/inc/svx/sdr/properties/rectangleproperties.hxx
new file mode 100644
index 000000000000..ea61a3bdf1b2
--- /dev/null
+++ b/svx/inc/svx/sdr/properties/rectangleproperties.hxx
@@ -0,0 +1,69 @@
+/*************************************************************************
+ *
+ * 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 _SDR_PROPERTIES_RECTANGLEPROPERTIES_HXX
+#define _SDR_PROPERTIES_RECTANGLEPROPERTIES_HXX
+
+#include <svx/sdr/properties/textproperties.hxx>
+#include "svx/svxdllapi.h"
+
+//////////////////////////////////////////////////////////////////////////////
+
+namespace sdr
+{
+ namespace properties
+ {
+ class SVX_DLLPUBLIC RectangleProperties : public TextProperties
+ {
+ protected:
+ // react on ItemSet changes
+ virtual void ItemSetChanged(const SfxItemSet& rSet);
+
+ public:
+ // basic constructor
+ RectangleProperties(SdrObject& rObj);
+
+ // constructor for copying, but using new object
+ RectangleProperties(const RectangleProperties& rProps, SdrObject& rObj);
+
+ // destructor
+ virtual ~RectangleProperties();
+
+ // Clone() operator, normally just calls the local copy constructor
+ virtual BaseProperties& Clone(SdrObject& rObj) const;
+
+ // set a new StyleSheet and broadcast
+ virtual void SetStyleSheet(SfxStyleSheet* pNewStyleSheet, sal_Bool bDontRemoveHardAttr);
+ };
+ } // end of namespace properties
+} // end of namespace sdr
+
+//////////////////////////////////////////////////////////////////////////////
+
+#endif //_SDR_PROPERTIES_RECTANGLEPROPERTIES_HXX
+
+// eof
diff --git a/svx/inc/svx/sdr/properties/textproperties.hxx b/svx/inc/svx/sdr/properties/textproperties.hxx
new file mode 100644
index 000000000000..9a891f424461
--- /dev/null
+++ b/svx/inc/svx/sdr/properties/textproperties.hxx
@@ -0,0 +1,97 @@
+/*************************************************************************
+ *
+ * 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 _SDR_PROPERTIES_TEXTPROPERTIES_HXX
+#define _SDR_PROPERTIES_TEXTPROPERTIES_HXX
+
+#include <svx/sdr/properties/attributeproperties.hxx>
+#include "svx/svxdllapi.h"
+
+//////////////////////////////////////////////////////////////////////////////
+
+namespace sdr
+{
+ namespace properties
+ {
+ class SVX_DLLPUBLIC TextProperties : public AttributeProperties
+ {
+ private:
+ // #i101556# versioning support
+ sal_uInt32 maVersion;
+
+ protected:
+ // create a new itemset
+ virtual SfxItemSet& CreateObjectSpecificItemSet(SfxItemPool& rPool);
+
+ // Do the ItemChange, may do special handling
+ virtual void ItemChange(const sal_uInt16 nWhich, const SfxPoolItem* pNewItem = 0);
+
+ // react on ItemSet changes
+ virtual void ItemSetChanged(const SfxItemSet& rSet);
+
+ public:
+ // basic constructor
+ TextProperties(SdrObject& rObj);
+
+ // constructor for copying, but using new object
+ TextProperties(const TextProperties& rProps, SdrObject& rObj);
+
+ // destructor
+ virtual ~TextProperties();
+
+ // Clone() operator, normally just calls the local copy constructor
+ virtual BaseProperties& Clone(SdrObject& rObj) const;
+
+ // set a new StyleSheet and broadcast
+ virtual void SetStyleSheet(SfxStyleSheet* pNewStyleSheet, sal_Bool bDontRemoveHardAttr);
+
+ // force default attributes for a specific object type, called from
+ // DefaultProperties::GetObjectItemSet() if a new ItemSet is created
+ virtual void ForceDefaultAttributes();
+
+ // force all attributes which come from styles to hard attributes
+ // to be able to live without the style.
+ virtual void ForceStyleToHardAttributes();
+
+ // This is the notifyer from SfxListener
+ virtual void Notify(SfxBroadcaster& rBC, const SfxHint& rHint);
+
+ // Set single item at the local ItemSet. *Does not use* AllowItemChange(),
+ // ItemChange(), PostItemChange() and ItemSetChanged() calls.
+ void SetObjectItemNoBroadcast(const SfxPoolItem& rItem);
+
+ // #i101556# versioning support
+ virtual sal_uInt32 getVersion() const;
+ };
+ } // end of namespace properties
+} // end of namespace sdr
+
+//////////////////////////////////////////////////////////////////////////////
+
+#endif //_SDR_PROPERTIES_TEXTPROPERTIES_HXX
+
+// eof