00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef __PRM_ParmOwner__
00023 #define __PRM_ParmOwner__
00024
00025 #include "PRM_API.h"
00026 #include <UT/UT_String.h>
00027 #include <UT/UT_PtrArray.h>
00028 #include <PY/PY_Result.h>
00029 #include <CH/CH_ExprLanguage.h>
00030
00031 class UT_StringArray;
00032 class PY_CompiledCode;
00033 class PRM_Instance;
00034 class PRM_ParmList;
00035 class PRM_Parm;
00036 class PRM_ParmNameMap;
00037
00038 class PRM_API PRM_ParmOwner
00039 {
00040 public:
00041 virtual void getFullPath(UT_String &str) const = 0;
00042 virtual PRM_ParmList *getParmList() = 0;
00043 virtual const PRM_ParmList *getParmList() const = 0;
00044
00045 virtual bool createSpareParametersForLoad(
00046 UT_StringArray &,
00047 PRM_ParmNameMap &,
00048 UT_String &);
00049
00050 virtual PRM_ParmList *createObsoleteParmList() = 0;
00051 virtual void resolveAndDeleteObsoleteParmList(
00052 PRM_ParmList *&obsolete_parms) = 0;
00053
00054
00055
00056
00057 virtual void executeCommand(const char *command,
00058 ostream *out,
00059 ostream *err) const = 0;
00060
00061
00062
00063 virtual void pushAsPwdAndRunPython(
00064 PY_CompiledCode &compiled_code,
00065 PY_Result::Type desired_result_type,
00066 PY_Result &result) const = 0;
00067
00068
00069
00070 bool isPendingOverride() const
00071 {
00072 return myOverridePending.isstring();
00073 }
00074
00075
00076
00077 bool isPendingOverride(const char *parmname,
00078 int vecidx) const;
00079 const char *getPendingOverrideString() const
00080 {
00081 return (const char *) myOverridePending;
00082 }
00083 void setPendingOverrideString(const char *s);
00084 virtual int prmCookOverrides(float ) { return 0; }
00085
00086
00087
00088 virtual void takeAutoActivateParm(PRM_Parm *) = 0;
00089
00090
00091
00092
00093 virtual void rebuildParmDependency(int parmidx) = 0;
00094
00095
00096 virtual void clearParmDependency(int parmidx) = 0;
00097
00098
00099
00100 virtual void convertOpdefToAbsolutePath(UT_String &str) const = 0;
00101
00102
00103
00104
00105
00106 virtual void spareParmRemoved(const char *parmname) = 0;
00107
00108
00109
00110 virtual void initMultiparmInstance(UT_PtrArray<PRM_Parm *> &p) = 0;
00111
00112
00113 virtual void addOrRemoveMultiparmInstance() = 0;
00114
00115 virtual bool savePresetContents(ostream &os) = 0;
00116 virtual bool loadPresetContents(const char *token,
00117 UT_IStream &is) = 0;
00118
00119 virtual CH_ExprLanguage getExprLanguage() const = 0;
00120
00121 protected:
00122 PRM_ParmOwner()
00123 { }
00124 virtual ~PRM_ParmOwner()
00125 { }
00126
00127 UT_String myOverridePending;
00128 };
00129
00130 #endif
00131