// This file is generated by WOK (CPPExt).
// Please do not edit this file; modify original file instead.
// The copyright and license terms as defined for the original file apply to 
// this header file considered to be the "object code" form of the original source.

#ifndef _DDataStd_DrawPresentation_HeaderFile
#define _DDataStd_DrawPresentation_HeaderFile

#include <Standard.hxx>
#include <Standard_DefineHandle.hxx>
#include <Handle_DDataStd_DrawPresentation.hxx>

#include <Standard_Boolean.hxx>
#include <Handle_Draw_Drawable3D.hxx>
#include <TDF_Attribute.hxx>
#include <Handle_TDF_Attribute.hxx>
#include <Handle_TDF_RelocationTable.hxx>
#include <Handle_TDF_AttributeDelta.hxx>
class Draw_Drawable3D;
class TDF_Label;
class Standard_GUID;
class TDF_Attribute;
class TDF_RelocationTable;
class TDF_AttributeDelta;


//! draw presentaion of a label of a document
class DDataStd_DrawPresentation : public TDF_Attribute
{

public:

  
  //! api methods on draw presentation
  //! ================================
  Standard_EXPORT static   Standard_Boolean HasPresentation (const TDF_Label& L) ;
  
  Standard_EXPORT static   Standard_Boolean IsDisplayed (const TDF_Label& L) ;
  
  Standard_EXPORT static   void Display (const TDF_Label& L) ;
  
  Standard_EXPORT static   void Erase (const TDF_Label& L) ;
  
  //! attribute implementation
  //! ========================
  Standard_EXPORT static   void Update (const TDF_Label& L) ;
  
  Standard_EXPORT static  const  Standard_GUID& GetID() ;
  
  Standard_EXPORT DDataStd_DrawPresentation();
  
  Standard_EXPORT   void SetDisplayed (const Standard_Boolean status) ;
  
  Standard_EXPORT   Standard_Boolean IsDisplayed()  const;
  
  Standard_EXPORT   void SetDrawable (const Handle(Draw_Drawable3D)& D) ;
  
  Standard_EXPORT   Handle(Draw_Drawable3D) GetDrawable()  const;
  
  Standard_EXPORT  const  Standard_GUID& ID()  const;
  
  Standard_EXPORT   Handle(TDF_Attribute) NewEmpty()  const;
  
  Standard_EXPORT   void Restore (const Handle(TDF_Attribute)& with) ;
  
  //! call backs for viewer updating
  //! ==============================
  Standard_EXPORT   void Paste (const Handle(TDF_Attribute)& into, const Handle(TDF_RelocationTable)& RT)  const;
  
  Standard_EXPORT virtual   void AfterAddition() ;
  
  Standard_EXPORT virtual   void BeforeRemoval() ;
  
  Standard_EXPORT virtual   void BeforeForget() ;
  
  Standard_EXPORT virtual   void AfterResume() ;
  
  Standard_EXPORT virtual   Standard_Boolean BeforeUndo (const Handle(TDF_AttributeDelta)& anAttDelta, const Standard_Boolean forceIt = Standard_False) ;
  
  //! update draw viewer according to delta
  //! private methods
  //! ===============
  Standard_EXPORT virtual   Standard_Boolean AfterUndo (const Handle(TDF_AttributeDelta)& anAttDelta, const Standard_Boolean forceIt = Standard_False) ;




  DEFINE_STANDARD_RTTI(DDataStd_DrawPresentation)

protected:




private: 

  
  Standard_EXPORT   void DrawBuild() ;
  
  Standard_EXPORT static   void DrawDisplay (const TDF_Label& L, const Handle(DDataStd_DrawPresentation)& P) ;
  
  Standard_EXPORT static   void DrawErase (const TDF_Label& L, const Handle(DDataStd_DrawPresentation)& P) ;

  Standard_Boolean isDisplayed;
  Handle(Draw_Drawable3D) myDrawable;


};







#endif // _DDataStd_DrawPresentation_HeaderFile
