12 #ifndef __OP_OTLManager__
13 #define __OP_OTLManager__
39 #define OP_TYPEBARMODE_FULLMENU "fullmenu"
40 #define OP_TYPEBARMODE_AUTOMENU "automenu"
41 #define OP_TYPEBARMODE_DISPLAYONLY "displayonly"
42 #define OP_TYPEBARMODE_NONE "none"
47 #define OP_IS_OTL_COMPILED "nodeconntype"
53 #define OP_IS_OTL_BLACKBOXED "nodeparmtype"
65 virtual bool onOTLLoadBegin(
const char* otl_name,
78 bool getSaveToHipFile()
const;
79 void setSaveToHipFile(
bool savetohip);
80 bool getSaveUnlockedToHipFile()
const;
81 void setSaveUnlockedToHipFile(
bool saveunlockedtohip);
82 bool getWarnOutOfDateOps()
const;
83 void setWarnOutOfDateOps(
bool warn);
84 bool getWarnDummyOpsOnLoad()
const;
85 void setWarnDummyOpsOnLoad(
bool warn);
86 bool getPreferLatestDate()
const;
87 void setPreferLatestDate(
bool preferlatest);
88 bool getPreferInternal()
const;
89 void setPreferInternal(
bool preferinternal);
90 bool getPreferIndexFile()
const;
91 void setPreferIndexFile(
bool preferindexfile);
92 bool getCreateBackups()
const;
93 void setCreateBackups(
bool createbackups);
94 bool getSafeguardOpDefs()
const;
95 void setSafeguardOpDefs(
bool safeguardopdefs);
96 bool getLeaveDefaultsUnchanged()
const;
97 void setLeaveDefaultsUnchanged(
bool leavedefaultsunchanged);
98 bool getUseOplibrariesFiles()
const;
99 void setUseOplibrariesFiles(
bool useoplibrariesfiles);
109 bool runOTLCallbacks(
const char* otl_name,
118 void clearFailedOTLList();
124 const char *metasrc,
int &libpos);
128 bool saveInternalMetaFile(std::ostream &os,
129 const char *prefix = 0)
const;
137 void setLibraryPreference(
const char *tablename,
139 const char *libfile);
144 void setLibraryPreferencesIfRequired(
int index);
147 const char *getLibraryPreference(
const char *tablename,
148 const char *opname)
const;
150 void clearLibraryPreferences(
bool refreshlibs);
153 void saveLibraryPreferences(std::ostream &os,
154 bool includeinternal =
true,
155 bool protectstrings =
false)
const;
159 bool withpath =
true)
const;
160 void getMetaSourceName(
const char *metasrc,
162 bool withpath =
true)
const;
163 bool setMetaSourceName(
const char *metasrc,
164 const char *metasrcname);
169 bool getIsPerformingAtomicAddRemove()
const;
174 bool getIsPerformingRefreshAll()
const;
177 bool getIsCreatingNewHDA()
const;
181 void installLibrary(
char const* lib_filepath,
char const* oplib_filepath=
nullptr);
186 const char *metasrcbase,
187 bool changeoplibraries,
188 bool installinternaliffail,
194 int findLibrary(
const char *libfile,
195 const char *metasrc = 0)
const;
196 int findNextLibrary(
const char *libfile,
198 bool refreshLibrary(
int index,
bool force =
true);
199 bool removeLibrary(
const char *libfile,
201 bool changeoplibraries);
209 bool changeoplibraries);
211 bool removeMetaSource(
const char *metasrc);
214 void refreshAll(
bool reload_op_libraries);
222 bool changeoplibraries,
223 bool installinternaliffail,
227 int getNumLibraries()
const;
228 int getPreferredLibrary(
const char *tablename,
234 int getLatestLibrary(
const char *tablename,
241 int getNextLibrary(
const char *tablename,
250 bool dummydefinition =
false);
251 bool addToLibrary(
const char *libfile,
254 bool dummydefinition =
false,
255 bool create_op_type=
false,
256 bool create_backup=
true);
260 bool mergeLibraries(
const char *primary,
261 const char *secondary,
269 bool addToInternalLibrary(
UT_IStream &is, time_t modtime);
274 bool removeFromLibrary(
const char *libfile,
279 bool touchDefinition(
const char *libfile,
280 const char *tablename,
287 static void modifyDefinitionToInternalPaths(
297 void updateContentsFromNode(
303 bool compilechannels,
304 bool compilenodenames,
306 bool blackbox =
false);
310 void updateDefinitionFromNode(
319 bool blackbox =
false);
323 void setContentsCompression(
329 void setComment(
FS_IndexFile *deffile,
const char *comment);
334 void listLibraries(std::ostream &os)
const;
335 void listLibrariesWithDefinition(
const char *tablename,
337 std::ostream &os)
const;
338 void listOperators(
const char *libfile,
339 std::ostream &os)
const;
340 void listOperator(
const char *libfile,
341 const char *tablename,
344 std::ostream &os)
const;
348 void getLibrariesWithDefinition(
349 const char *tablename,
365 bool getAllMatchingOperators(
const char *opmask,
376 bool checkValidNodeName(
const char *
name,
381 const char *installpath,
382 const char *extradsinfo,
383 const char *installmetasrc,
386 bool create_backup=
true);
390 bool createOptype(
const char *tablename,
393 const char *installpath,
394 int min_input,
int max_input,
396 const char *extradsinfo,
397 const char *installmetasrc,
398 const char *extrainfo,
401 bool create_backup=
true);
403 static bool getHelpTemplateFile(
UT_String &helptemplatefile);
404 static void createDefaultOptypeName(
OP_Node *fromnode,
407 static void createOptypeLabelFromName(
UT_String name,
409 static void createOptypeNameFromLabel(
UT_String label,
411 static void fullyQualifyLibFileName(
const char *libfilebase,
413 const char *basedir = 0);
414 void fullyQualifyMetaSrcName(
const char *libfilebase,
416 void getSimplifiedPath(
UT_String &destpath,
418 const char *srcmeta)
const;
420 bool canSavePreferences()
const;
430 void pushFallbackLibraryContext();
431 void popFallbackLibraryContext();
432 void saveFallbackLibraryPaths(std::ostream &os,
434 bool loadFallbackLibraryPaths(
UT_IStream &is);
435 bool loadFallbackLibrary(
const char *tablename,
448 bool loadDummyDefinitions(
UT_IStream &is, time_t modtime);
449 void saveDummyDefinitions(std::ostream &os,
453 static void saveDefaultDialogScript(std::ostream &os,
456 const char *extradsinfo);
458 static void saveDefaultCreationScript(std::ostream &os,
465 static void writeOutDefinitionContents(
476 void refreshLicenses();
482 const UT_String &getInternalTempFile()
const;
495 {mySaveOpTypeCallback = cb;}
498 bool convertLibraryToFile(
const char *libfilebase,
499 const char *metasrcbase);
500 bool convertLibraryToDir(
const char *libfilebase,
501 const char *metasrcbase);
504 struct OTLFallbackData
514 friend class RefreshScope;
517 void notifySinksOfAssetCreated(
520 void notifySinksOfAssetDeleted(
523 void notifySinksOfAssetSaved(
526 void notifySinksOfBeforeAssetCreated(
529 void notifySinksOfBeforeAssetDeleted(
532 void notifySinksOfBeforeAssetSaved(
536 void notifySinksOfLibraryUninstalled(
538 void notifySinksOfDefinitionsAdded(
int libindex,
540 void notifySinksOfDefinitionsRemoved(
int libindex,
543 void notifySinksOfSourceNamesChanged();
546 void notifySinksOfConfigurationChanged();
547 void notifySinksOfLicensesChanged();
548 void writeSimplifiedPath(std::ostream &os,
551 const char *prefix = 0)
const;
554 void setMetaSourceNameData(
int pos,
const char *metasrc,
555 const char *metasrcname);
560 bool saveMetaFile(
const char *metafile,
562 const char *addlib)
const;
566 int addToMetaSource(
const char *libfile,
568 bool changeoplibraries);
576 bool removeLibrary(
int index,
bool external=
false);
578 void loadPreferences();
579 void savePreferences();
581 void moveInternalToNewTempFile();
586 bool removeFromExternalLibrary(
const char *libfile,
594 bool backupAndWriteNewLibrary(
const char *libfilebase,
601 bool touchExternalDefinition(
const char *libfile,
602 const char *tablename,
605 bool touchInternalDefinition(
const char *tablename,
609 void addFromOpLibrariesFile(
const char *file,
614 void setLibraryPreference(
const char *tablename,
620 void addFallbackLibraryPath(
const char *tablename,
622 const char *libfile);
624 const char *opsymbol,
625 const char *tablename,
636 static void deleteLibraries(
void *
data);
654 int myPerformingRefreshAll;
655 bool myIsPerformingAtomicAddRemove;
656 bool mySaveToHipFile;
657 bool mySaveUnlockedToHipFile;
658 bool myWarnOutOfDateOps;
659 bool myWarnDummyOpsOnLoad;
660 bool myPreferLatestDateDefinition;
661 bool myPreferInternalDefinition;
662 bool myPreferIndexFileDefinition;
663 bool myCreateBackups;
664 bool mySafeguardOpDefs;
665 bool myLeaveDefaultsUnchanged;
666 bool myUseOplibrariesFiles;
667 bool myIsCreatingNewHDA;
678 { removeAllManagerSinks(); }
739 { removeManagerSink(manager); }
744 if( !manager )
return;
748 if (myManagers.find(manager) != -1)
752 myManagers.append(manager, 1);
756 if( !manager )
return;
758 myManagers.findAndRemove(manager);
762 for(
int i = myManagers.entries(); i --> 0; )
763 removeManagerSink(myManagers(i));
void removeManagerSink(OP_OTLManagerSink *sink)
int getVersion(int version)
GLsizei GLenum const void * indices
GLuint GLsizei const GLchar * label
void addManagerSink(OP_OTLManager *manager)
virtual void libraryInstalled(const OP_OTLLibrary *library)
virtual void libraryRemoved(OP_OTLLibrary *)
virtual ~OP_OTLLoadCallback()
virtual void definitionsRemoved(int, UT_IntArray &, OP_OTLLibrary *&)
**But if you need a result
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 *)
void managerDeleted(OP_OTLManager *manager)
virtual ~OP_OTLManagerSink()
void setSaveOpTypeCallback(OP_SaveOpTypeCallback cb)
Only called by FUSE_AssetsMenu to clean dirty flags of assets.
GLint GLint GLsizei GLint GLenum format
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.
GLuint const GLchar * name
GLenum GLenum GLsizei void * table
void addManagerSink(OP_OTLManagerSink *sink)
Functions for handling our interests.
virtual void configurationChanged()
GT_API const UT_StringHolder version
virtual void beforeAssetDeleted(const OP_OTLLibrary &library, const OP_OTLDefinition &def)
Called right before an asset definition is removed from a library.
SIM_API const UT_StringHolder force
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 &)
virtual void beforeAssetCreated(const OP_OTLLibrary &library, const OP_OTLDefinition &def)
Called right before an asset definition is created.
virtual void beforeAssetSaved(const OP_OTLLibrary &library, const OP_OTLDefinition &def)
Called right before an asset definition is saved.