News
Scenome 21.46 — 11/21/2021
Release details are described below.
Table 1.1. Description of Changes.
Change Log |
---|
Cleaned up module boundaries. This work focused mostly on type_node_clone_util.ssl, type_node_delete_util.ssl, and type_node_rename_util.ssl. However the changes were distributed throughout numerous Scenome Scripting Language files. These libraries were collecting types in the form of pseudo-virtual functions implemented by dynamic Scenome Scripting Language invocations. Instead these libraries now defer all work to functions that know only about Node. These functions futher defer work into the utility libraries for each type. This is the primary mechanism through which we were able to prevent class references from building up in certain script library files. To facilitate the module boundary clean up, Added some presentation node utility libraries to certain types. You can add custom presentation module scripts as needed. |
If you wish to have a custom delete function for node, then you need to add function bool Delete( Node p_oNode){ /*Do deletion work...*/ return true; } to the node's associated utility library. In the case that you wish to remove more than just the selected node, this function will be totally responsible for deleting the node and for any further changes to the document. If a node does not have a custom delete function, we assume that simple deletion is desired, and we allow the node to be deleted no-questions-asked. Therefore, if you want a node to be undeletable, then give it an empty delete function that returns true. |
If you wish to have a custom clone function for node, then you need to add function bool Clone( Node p_oNode){ /*Do cloning work...*/ return true; } to the node's associated utility library. In the case that a clone operation affects more than just the selected node, this function will be totally responsible for cloning the node and adding it to the document. If a node does not have a custom clone function, we assume that simple cloning is desired, and we allow the node to be cloned no-questions-asked. Therefore, if you want a node to be unclonable, then give it an empty clone function that returns true. |
If you wish to have a custom rename function for node, then you need to add function bool Rename( Node p_oNode){ /*Do renaming work...*/ return true; } to the node's associated utility library. In the case that a rename operation affects more than just the selected node, this function will be totally responsible for renaming the node and for any further changes to the document. If a node does not have a custom rename function, we assume that simple renaming is desired, and we allow the node to be renamed no-questions-asked. Therefore, if you want a node to be unrenamable, then give it an empty rename function that returns true. |
Renamed all scripts using "_modifier" to "_primitive". This is a cosmetic change only and does not affect the operation of any of the underlying code. |
Updated all application shells because of changes to the Scenome Scripting Language codebase. |
Added IsReadbackBinding data interface to <VariableNode>. This makes it very easy to test when a <VariableNode> is being used for readback. |
Added IsStructBinding data interface to <VariableNode>. This makes it very easy to test when a <VariableNode> is being used as part of a struct. |
Added IsAnyTypeSelected data interface to <ValidateNodeCommandContext>. This makes it very easy to test whether or not multiple nodes are selected and if any of the selected nodes matches any of the expected types. This should help simplify command context validation. |
Updated FileIOSizeInBytes data interface in <FileIO> data interfaces. Previously, due to limitations in Scenome Scripting Language, this function returned a double. This function now returns the file size as a uint64. This should be sufficient for most applications. |
Updated RunProgram data interface in <Application> data interfaces. Added a string function parameter that allows the user to specify the active directory they want to use when executing the batch file. This is important for resolution of relative paths. If this string is empty, the command attempts to determine if the batch file path is valid, and if so, it sets the file path component of the batch file path as the active directory. The previous default behavior was to use the location of the active document. The previous default behavior is still possible, but the path MUST be specified using the new function parameter for this behavior to work. |