PropertyContainer.h File Reference

#include <map>
#include <Base/Persistence.h>

Go to the source code of this file.

Classes

class  App::PropertyContainer
 Base class of all classes with properties. More...
struct  App::PropertyData
struct  App::PropertyData::PropertySpec

Namespaces

namespace  App
 

The namespace of the FreeCAD Aplication layer library.


namespace  Base
 

The namespace of the FreeCAD Base library.


Defines

#define ADD_PROPERTY(_prop_, _defaultval_)
 Property define.
#define ADD_PROPERTY_TYPE(_prop_, _defaultval_, _group_, _type_, _Docu_)
#define PROPERTY_HEADER(_class_)
#define PROPERTY_SOURCE(_class_, _parentclass_)
#define PROPERTY_SOURCE_ABSTRACT(_class_, _parentclass_)
#define PROPERTY_SOURCE_TEMPLATE(_class_, _parentclass_)
#define TYPESYSTEM_SOURCE_TEMPLATE(_class_)

Enumerations

enum  App::PropertyType {
  App::Prop_None = 0, App::Prop_ReadOnly = 1, App::Prop_Transient = 2, App::Prop_Hidden = 4,
  App::Prop_Output = 8
}

Define Documentation

#define ADD_PROPERTY ( _prop_,
_defaultval_   ) 
Value:
do { \
    this->_prop_.setValue _defaultval_;\
    this->_prop_.setContainer(this); \
    propertyData.addProperty(this, #_prop_, &this->_prop_); \
  } while (0)

Property define.

Definition at line 177 of file PropertyContainer.h.

Referenced by PartDesign::Additive::Additive(), App::Annotation::Annotation(), Part::Boolean::Boolean(), PartDesign::Chamfer::Chamfer(), Part::Chamfer::Chamfer(), Part::Circle::Circle(), Mesh::Cone::Cone(), Mesh::Curvature::Curvature(), Part::CurveNet::CurveNet(), Mesh::Cylinder::Cylinder(), PartDesign::DressUp::DressUp(), Mesh::Ellipsoid::Ellipsoid(), Points::Export::Export(), Mesh::Export::Export(), Part::Extrusion::Extrusion(), PartDesign::Face::Face(), Points::Feature::Feature(), Part::Feature::Feature(), Inspection::Feature::Feature(), Part::FeatureGeometrySet::FeatureGeometrySet(), App::FeaturePythonT< FeatureT >::FeaturePythonT(), Part::FeatureReference::FeatureReference(), App::FeatureTest::FeatureTest(), App::FeatureTestException::FeatureTestException(), PartDesign::Fillet::Fillet(), Part::Fillet::Fillet(), Mesh::FillHoles::FillHoles(), Mesh::FixDefects::FixDefects(), Mesh::FixDeformations::FixDeformations(), App::GeoFeature::GeoFeature(), PartDesign::Hole::Hole(), Mesh::Import::Import(), Points::ImportAscii::ImportAscii(), Part::ImportBrep::ImportBrep(), Part::ImportIges::ImportIges(), Part::ImportStep::ImportStep(), PartDesign::MainPart::MainPart(), Part::Mirroring::Mirroring(), Part::MultiCommon::MultiCommon(), Part::MultiFuse::MultiFuse(), PartDesign::Pad::Pad(), PartDesign::PatternRectangular::PatternRectangular(), App::Placement::Placement(), PartDesign::Pocket::Pocket(), Part::Polygon::Polygon(), Raytracing::RayFeature::RayFeature(), Mesh::RemoveComponents::RemoveComponents(), PartDesign::Revolution::Revolution(), Part::Revolution::Revolution(), Sandbox::SandboxObject::SandboxObject(), Mesh::SegmentByMesh::SegmentByMesh(), Mesh::SetOperations::SetOperations(), PartDesign::SketchBased::SketchBased(), Mesh::Sphere::Sphere(), PartDesign::Subtractive::Subtractive(), Mesh::Torus::Torus(), Mesh::Transform::Transform(), Mesh::TransformDemolding::TransformDemolding(), Part::Vertex::Vertex(), Gui::ViewProviderAnnotation::ViewProviderAnnotation(), Gui::ViewProviderAnnotationLabel::ViewProviderAnnotationLabel(), Gui::ViewProviderDocumentObject::ViewProviderDocumentObject(), DrawingGui::ViewProviderDrawingPage::ViewProviderDrawingPage(), Gui::ViewProviderFeature::ViewProviderFeature(), FemGui::ViewProviderFemMesh::ViewProviderFemMesh(), Gui::ViewProviderGeometryObject::ViewProviderGeometryObject(), Gui::ViewProviderMeasureDistance::ViewProviderMeasureDistance(), MeshGui::ViewProviderMesh::ViewProviderMesh(), MeshGui::ViewProviderMeshCurvature::ViewProviderMeshCurvature(), MeshGui::ViewProviderMeshDefects::ViewProviderMeshDefects(), MeshGui::ViewProviderMeshNode::ViewProviderMeshNode(), PartGui::ViewProviderPartBase::ViewProviderPartBase(), PartGui::ViewProviderPartExt::ViewProviderPartExt(), PointsGui::ViewProviderPoints::ViewProviderPoints(), Gui::ViewProviderPythonFeatureT< ViewProviderT >::ViewProviderPythonFeatureT(), and RobotGui::ViewProviderRobotObject::ViewProviderRobotObject().

#define ADD_PROPERTY_TYPE ( _prop_,
_defaultval_,
_group_,
_type_,
_Docu_   ) 
Value:
do { \
    this->_prop_.setValue _defaultval_;\
    this->_prop_.setContainer(this); \
    propertyData.addProperty(this, #_prop_, &this->_prop_, (_group_),(_type_),(_Docu_)); \
  } while (0)

Definition at line 184 of file PropertyContainer.h.

Referenced by App::AnnotationLabel::AnnotationLabel(), Part::Box::Box(), Part::Cone::Cone(), Mesh::Cube::Cube(), Part::Cylinder::Cylinder(), App::Document::Document(), App::DocumentObjectFileIncluded::DocumentObjectFileIncluded(), App::DocumentObjectGroup::DocumentObjectGroup(), Robot::Edge2TracObject::Edge2TracObject(), Part::Ellipsoid::Ellipsoid(), Mesh::Feature::Feature(), Drawing::FeaturePage::FeaturePage(), Drawing::FeatureProjection::FeatureProjection(), App::FeatureTest::FeatureTest(), Drawing::FeatureView::FeatureView(), Drawing::FeatureViewPart::FeatureViewPart(), Fem::FemMeshObject::FemMeshObject(), Part::Helix::Helix(), Image::ImagePlane::ImagePlane(), App::InventorObject::InventorObject(), Part::Loft::Loft(), App::MeasureDistance::MeasureDistance(), Part::Mirroring::Mirroring(), Drawing::PageGroup::PageGroup(), Part::Part2DObject::Part2DObject(), Part::Plane::Plane(), Raytracing::RayProject::RayProject(), Raytracing::RaySegment::RaySegment(), Robot::RobotObject::RobotObject(), Part::RuledSurface::RuledSurface(), Sketcher::SketchObject::SketchObject(), Sketcher::SketchObjectSF::SketchObjectSF(), Part::Sphere::Sphere(), Part::Torus::Torus(), Robot::TrajectoryCompound::TrajectoryCompound(), Robot::TrajectoryDressUpObject::TrajectoryDressUpObject(), Robot::TrajectoryObject::TrajectoryObject(), PartGui::ViewProvider2DObject::ViewProvider2DObject(), InspectionGui::ViewProviderInspection::ViewProviderInspection(), SketcherGui::ViewProviderSketch::ViewProviderSketch(), App::VRMLObject::VRMLObject(), and Part::Wedge::Wedge().

#define PROPERTY_HEADER ( _class_   ) 
Value:
TYPESYSTEM_HEADER(); \
protected: \
  static const App::PropertyData * getPropertyDataPtr(void); \
  virtual const App::PropertyData &getPropertyData(void) const; \
private: \
  static App::PropertyData propertyData

Definition at line 193 of file PropertyContainer.h.

#define PROPERTY_SOURCE ( _class_,
_parentclass_   ) 
Value:
TYPESYSTEM_SOURCE_P(_class_);\
const App::PropertyData * _class_::getPropertyDataPtr(void){return &propertyData;} \
const App::PropertyData & _class_::getPropertyData(void) const{return propertyData;} \
App::PropertyData _class_::propertyData; \
void _class_::init(void){\
  initSubclass(_class_::classTypeId, #_class_ , #_parentclass_, &(_class_::create) ); \
  _class_::propertyData.parentPropertyData = _parentclass_::getPropertyDataPtr();\
}

Definition at line 202 of file PropertyContainer.h.

#define PROPERTY_SOURCE_ABSTRACT ( _class_,
_parentclass_   ) 
Value:
TYPESYSTEM_SOURCE_ABSTRACT_P(_class_);\
const App::PropertyData * _class_::getPropertyDataPtr(void){return &propertyData;} \
const App::PropertyData & _class_::getPropertyData(void) const{return propertyData;} \
App::PropertyData _class_::propertyData; \
void _class_::init(void){\
  initSubclass(_class_::classTypeId, #_class_ , #_parentclass_, &(_class_::create) ); \
  _class_::propertyData.parentPropertyData = _parentclass_::getPropertyDataPtr();\
}

Definition at line 212 of file PropertyContainer.h.

#define PROPERTY_SOURCE_TEMPLATE ( _class_,
_parentclass_   ) 
Value:
TYPESYSTEM_SOURCE_TEMPLATE(_class_);\
template<> const App::PropertyData * _class_::getPropertyDataPtr(void){return &propertyData;} \
template<> const App::PropertyData & _class_::getPropertyData(void) const{return propertyData;} \
template<> App::PropertyData _class_::propertyData = App::PropertyData(); \
template<> void _class_::init(void){\
  initSubclass(_class_::classTypeId, #_class_ , #_parentclass_, &(_class_::create) ); \
  _class_::propertyData.parentPropertyData = _parentclass_::getPropertyDataPtr();\
}

Definition at line 230 of file PropertyContainer.h.

Referenced by Gui::ViewProviderPythonFeatureT< ViewProviderT >::init(), and Part::FeatureExt::init().

#define TYPESYSTEM_SOURCE_TEMPLATE ( _class_   ) 
Value:
template<> Base::Type _class_::getClassTypeId(void) { return _class_::classTypeId; } \
template<> Base::Type _class_::getTypeId(void) const { return _class_::classTypeId; } \
template<> Base::Type _class_::classTypeId = Base::Type::badType();  \
template<> void * _class_::create(void){\
   return new _class_ ();\
}

Definition at line 222 of file PropertyContainer.h.


Generated on Wed Nov 23 19:01:19 2011 for FreeCAD by  doxygen 1.6.1