12 #ifndef __OP_OTLManager__
13 #define __OP_OTLManager__
36 #define OP_TYPEBARMODE_FULLMENU "fullmenu"
37 #define OP_TYPEBARMODE_AUTOMENU "automenu"
38 #define OP_TYPEBARMODE_DISPLAYONLY "displayonly"
39 #define OP_TYPEBARMODE_NONE "none"
44 #define OP_IS_OTL_COMPILED "nodeconntype"
50 #define OP_IS_OTL_BLACKBOXED "nodeparmtype"
62 virtual bool onOTLLoadBegin(
const char* otl_name,
75 bool getSaveToHipFile()
const;
76 void setSaveToHipFile(
bool savetohip);
77 bool getSaveUnlockedToHipFile()
const;
78 void setSaveUnlockedToHipFile(
bool saveunlockedtohip);
79 bool getWarnOutOfDateOps()
const;
80 void setWarnOutOfDateOps(
bool warn);
81 bool getWarnDummyOpsOnLoad()
const;
82 void setWarnDummyOpsOnLoad(
bool warn);
83 bool getPreferLatestDate()
const;
84 void setPreferLatestDate(
bool preferlatest);
85 bool getPreferInternal()
const;
86 void setPreferInternal(
bool preferinternal);
87 bool getPreferIndexFile()
const;
88 void setPreferIndexFile(
bool preferindexfile);
89 bool getCreateBackups()
const;
90 void setCreateBackups(
bool createbackups);
91 bool getSafeguardOpDefs()
const;
92 void setSafeguardOpDefs(
bool safeguardopdefs);
93 bool getLeaveDefaultsUnchanged()
const;
94 void setLeaveDefaultsUnchanged(
bool leavedefaultsunchanged);
95 bool getUseOplibrariesFiles()
const;
96 void setUseOplibrariesFiles(
bool useoplibrariesfiles);
106 bool runOTLCallbacks(
const char* otl_name,
115 void clearFailedOTLList();
121 const char *metasrc,
int &libpos);
125 bool saveInternalMetaFile(std::ostream &os,
126 const char *prefix = 0)
const;
134 void setLibraryPreference(
const char *tablename,
136 const char *libfile);
141 void setLibraryPreferencesIfRequired(
int index);
144 const char *getLibraryPreference(
const char *tablename,
145 const char *opname)
const;
147 void clearLibraryPreferences(
bool refreshlibs);
150 void saveLibraryPreferences(std::ostream &os,
151 bool includeinternal =
true,
152 bool protectstrings =
false)
const;
156 bool withpath =
true)
const;
157 void getMetaSourceName(
const char *metasrc,
159 bool withpath =
true)
const;
160 bool setMetaSourceName(
const char *metasrc,
161 const char *metasrcname);
166 bool getIsPerformingAtomicAddRemove()
const;
171 bool getIsPerformingRefreshAll()
const;
174 bool getIsCreatingNewHDA()
const;
178 int findLibrary(
const char *libfile,
179 const char *metasrc = 0)
const;
180 int findNextLibrary(
const char *libfile,
182 bool refreshLibrary(
int index,
bool force =
true);
183 bool removeLibrary(
const char *libfile,
185 bool changeoplibraries);
186 bool removeMetaSource(
const char *metasrc);
187 void refreshAll(
bool reloadOpLibraries);
195 bool changeoplibraries,
196 bool installinternaliffail,
200 int getNumLibraries()
const;
201 int getPreferredLibrary(
const char *tablename,
207 int getLatestLibrary(
const char *tablename,
214 int getNextLibrary(
const char *tablename,
223 bool dummydefinition =
false);
224 bool addToLibrary(
const char *libfile,
227 bool dummydefinition =
false,
228 bool create_op_type=
false,
229 bool create_backup=
true);
231 bool saveCreateBackup(
const UT_String &libfile,
236 bool mergeLibraries(
const char *primary,
237 const char *secondary,
245 bool addToInternalLibrary(
UT_IStream &is,
int modtime);
250 bool removeFromLibrary(
const char *libfile,
255 bool touchDefinition(
const char *libfile,
256 const char *tablename,
263 static void modifyDefinitionToInternalPaths(
278 bool compilechannels,
279 bool compilenodenames,
281 bool blackbox =
false);
293 bool blackbox =
false);
302 void setComment(
FS_IndexFile *deffile,
const char *comment);
307 void listLibraries(std::ostream &os)
const;
308 void listLibrariesWithDefinition(
const char *tablename,
310 std::ostream &os)
const;
311 void listOperators(
const char *libfile,
312 std::ostream &os)
const;
313 void listOperator(
const char *libfile,
314 const char *tablename,
317 std::ostream &os)
const;
321 void getLibrariesWithDefinition(
322 const char *tablename,
338 bool getAllMatchingOperators(
const char *opmask,
349 bool checkValidNodeName(
const char *
name,
354 const char *installpath,
355 const char *extradsinfo,
356 const char *installmetasrc,
359 bool create_backup=
true);
363 bool createOptype(
const char *tablename,
366 const char *installpath,
367 int min_input,
int max_input,
369 const char *extradsinfo,
370 const char *installmetasrc,
371 const char *extrainfo,
374 bool create_backup=
true);
376 static bool getHelpTemplateFile(
UT_String &helptemplatefile);
377 static void createDefaultOptypeName(
OP_Node *fromnode,
380 static void createOptypeLabelFromName(
UT_String name,
382 static void createOptypeNameFromLabel(
UT_String label,
384 static void fullyQualifyLibFileName(
const char *libfilebase,
386 const char *basedir = 0);
387 void fullyQualifyMetaSrcName(
const char *libfilebase,
389 void getSimplifiedPath(
UT_String &destpath,
391 const char *srcmeta)
const;
393 bool canSavePreferences()
const;
403 void pushFallbackLibraryContext();
404 void popFallbackLibraryContext();
405 void saveFallbackLibraryPaths(std::ostream &os,
407 bool loadFallbackLibraryPaths(
UT_IStream &is);
408 bool loadFallbackLibrary(
const char *tablename,
421 bool loadDummyDefinitions(
UT_IStream &is,
int modtime);
422 void saveDummyDefinitions(std::ostream &os,
426 static void saveDefaultDialogScript(std::ostream &os,
429 const char *extradsinfo);
431 static void saveDefaultCreationScript(std::ostream &os,
438 static void writeOutDefinitionContents(
449 void refreshLicenses();
455 const UT_String &getInternalTempFile()
const;
468 {mySaveOpTypeCallback = cb;}
471 bool convertLibraryToFile(
const char *libfilebase,
472 const char *metasrcbase);
473 bool convertLibraryToDir(
const char *libfilebase,
474 const char *metasrcbase);
477 struct OTLFallbackData
487 friend class RefreshScope;
490 void notifySinksOfAssetCreated(
493 void notifySinksOfAssetDeleted(
496 void notifySinksOfAssetSaved(
500 void notifySinksOfLibraryUninstalled(
502 void notifySinksOfDefinitionsAdded(
int libindex,
504 void notifySinksOfDefinitionsRemoved(
int libindex,
507 void notifySinksOfSourceNamesChanged();
510 void notifySinksOfConfigurationChanged();
511 void notifySinksOfLicensesChanged();
512 void writeSimplifiedPath(std::ostream &os,
515 const char *prefix = 0)
const;
518 void setMetaSourceNameData(
int pos,
const char *metasrc,
519 const char *metasrcname);
524 bool saveMetaFile(
const char *metafile,
526 const char *addlib)
const;
530 int addToMetaSource(
const char *libfile,
532 bool changeoplibraries);
537 bool removeLibrary(
int index,
bool external=
false);
539 void loadPreferences();
540 void savePreferences();
542 void moveInternalToNewTempFile();
547 bool removeFromExternalLibrary(
const char *libfile,
555 bool backupAndWriteNewLibrary(
const char *libfilebase,
562 bool touchExternalDefinition(
const char *libfile,
563 const char *tablename,
566 bool touchInternalDefinition(
const char *tablename,
570 void addFromOpLibrariesFile(
const char *file,
575 void setLibraryPreference(
const char *tablename,
581 void addFallbackLibraryPath(
const char *tablename,
583 const char *libfile);
585 const char *opsymbol,
586 const char *tablename,
597 static void deleteLibraries(
void *
data);
615 int myPerformingRefreshAll;
616 bool myIsPerformingAtomicAddRemove;
617 bool mySaveToHipFile;
618 bool mySaveUnlockedToHipFile;
619 bool myWarnOutOfDateOps;
620 bool myWarnDummyOpsOnLoad;
621 bool myPreferLatestDateDefinition;
622 bool myPreferInternalDefinition;
623 bool myPreferIndexFileDefinition;
624 bool myCreateBackups;
625 bool mySafeguardOpDefs;
626 bool myLeaveDefaultsUnchanged;
627 bool myUseOplibrariesFiles;
628 bool myIsCreatingNewHDA;
639 { removeAllManagerSinks(); }
685 { removeManagerSink(manager); }
690 if( !manager )
return;
694 if (myManagers.find(manager) != -1)
698 myManagers.append(manager, 1);
702 if( !manager )
return;
704 myManagers.findAndRemove(manager);
708 for(
int i = myManagers.entries(); i --> 0; )
709 removeManagerSink(myManagers(i));
void removeManagerSink(OP_OTLManagerSink *sink)
int getVersion(int version)
GLuint GLsizei const void GLenum preserve
GLuint const GLchar * name
void addManagerSink(OP_OTLManager *manager)
GLsizei GLenum GLboolean sink
virtual void libraryInstalled(const OP_OTLLibrary *library)
virtual void libraryRemoved(OP_OTLLibrary *)
GLenum GLsizei GLenum GLenum const void * table
virtual ~OP_OTLLoadCallback()
virtual void definitionsRemoved(int, UT_IntArray &, OP_OTLLibrary *&)
GLint GLint GLsizei GLsizei GLsizei GLint GLenum format
virtual void licensesChanged()
void removeManagerSink(OP_OTLManager *manager)
std::unique_ptr< T, Deleter > UT_UniquePtr
A smart pointer for unique ownership of dynamically allocated objects.
void removeAllManagerSinks()
virtual void libraryAdded(OP_OTLLibrary *)
GLint GLenum GLsizei GLint GLsizei const void * data
void managerDeleted(OP_OTLManager *manager)
virtual ~OP_OTLManagerSink()
void setSaveOpTypeCallback(OP_SaveOpTypeCallback cb)
Only called by FUSE_AssetsMenu to clean dirty flags of assets.
OPENVDB_API void setVersion(std::ios_base &, const VersionId &libraryVersion, uint32_t fileVersion)
Associate specific file format and library version numbers with the given stream. ...
virtual void assetSaved(const OP_OTLLibrary &library, const OP_OTLDefinition &def)
Called when an asset definition is saved.
void addManagerSink(OP_OTLManagerSink *sink)
Functions for handling our interests.
GLuint GLsizei GLsizei GLchar * label
virtual void configurationChanged()
GT_API const UT_StringHolder version
virtual void assetDeleted(const OP_OTLLibrary &library, const OP_OTLDefinition &def)
void(* OP_SaveOpTypeCallback)(OP_Node *)
virtual void libraryUninstalled(const OP_OTLLibrary *library)
virtual void sourceNamesChanged()
virtual void assetCreated(const OP_OTLLibrary &library, const OP_OTLDefinition &def)
virtual void definitionsAdded(int, UT_IntArray &)