// 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 _IFSelect_ParamEditor_HeaderFile
#define _IFSelect_ParamEditor_HeaderFile

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

#include <TCollection_AsciiString.hxx>
#include <IFSelect_Editor.hxx>
#include <Standard_Integer.hxx>
#include <Standard_CString.hxx>
#include <Handle_Interface_TypedValue.hxx>
#include <Standard_Boolean.hxx>
#include <Handle_IFSelect_EditForm.hxx>
#include <Handle_TCollection_HAsciiString.hxx>
#include <Handle_Standard_Transient.hxx>
#include <Handle_Interface_InterfaceModel.hxx>
#include <Handle_TColStd_HSequenceOfHAsciiString.hxx>
class Interface_TypedValue;
class TCollection_AsciiString;
class IFSelect_EditForm;
class TCollection_HAsciiString;
class Standard_Transient;
class Interface_InterfaceModel;
class TColStd_HSequenceOfHAsciiString;


//! A ParamEditor gives access for edition to a list of TypedValue
//! (i.e. of Static too)
//! Its definition is made of the TypedValue to edit themselves,
//! and can add some constants, which can then be displayed but
//! not changed (for instance, system name, processor version ...)
//!
//! I.E. it gives a way of editing or at least displaying
//! parameters as global
class IFSelect_ParamEditor : public IFSelect_Editor
{

public:

  
  //! Creates a ParamEditor, empty, with a maximum count of params
  //! (default is 100)
  //! And a label, by default it will be "Param Editor"
  Standard_EXPORT IFSelect_ParamEditor(const Standard_Integer nbmax = 100, const Standard_CString label = "");
  
  //! Adds a TypedValue
  //! By default, its short name equates its complete name, it can
  //! be explicited
  Standard_EXPORT   void AddValue (const Handle(Interface_TypedValue)& val, const Standard_CString shortname = "") ;
  
  //! Adds a Constant Text, it will be Read Only
  //! By default, its long name equates its shortname
  Standard_EXPORT   void AddConstantText (const Standard_CString val, const Standard_CString shortname, const Standard_CString completename = "") ;
  
  Standard_EXPORT   TCollection_AsciiString Label()  const;
  
  Standard_EXPORT   Standard_Boolean Recognize (const Handle(IFSelect_EditForm)& form)  const;
  
  Standard_EXPORT   Handle(TCollection_HAsciiString) StringValue (const Handle(IFSelect_EditForm)& form, const Standard_Integer num)  const;
  
  Standard_EXPORT   Standard_Boolean Load (const Handle(IFSelect_EditForm)& form, const Handle(Standard_Transient)& ent, const Handle(Interface_InterfaceModel)& model)  const;
  
  Standard_EXPORT   Standard_Boolean Apply (const Handle(IFSelect_EditForm)& form, const Handle(Standard_Transient)& ent, const Handle(Interface_InterfaceModel)& model)  const;
  
  //! Returns a ParamEditor to work on the Static Parameters of
  //! which names are listed in <list>
  //! Null Handle if <list> is null or empty
  Standard_EXPORT static   Handle(IFSelect_ParamEditor) StaticEditor (const Handle(TColStd_HSequenceOfHAsciiString)& list, const Standard_CString label = "") ;




  DEFINE_STANDARD_RTTI(IFSelect_ParamEditor)

protected:




private: 


  TCollection_AsciiString thelabel;


};







#endif // _IFSelect_ParamEditor_HeaderFile
