When "Enclosure" is selected, a dashed box appears on the screen, with a shallow rectangle in the middle of the top line. Any of the the corners can be dragged in any direction, or the small rectangle at the top can be dragged, in which case the Enclosure as a whole is dragged.
Enclosures are used for a number of diagramming purposes - they do not cause any code to be generated.
Right-clicking on the small rectangle brings up a popup menu showing operations that can be performed on it. Currently there are seven:
After this function is selected, the user is prompted to select one of the arrows crossing either the lefthand or righthand boundary of the Enclosure block. The user will then be prompted to enter the port name.
If you do an Excise (see below), this information will automatically be copied to the generated External Port blocks.
This works the same way. The "substream sensitivity" indication on the graph is a red semicircle.
Substream sensitivity is related to the idea that in FBP a subnet can be set up to process a substream as if it were a complete stream. This uses the open and close bracket IPs to start and close down the subnet, respectively, provided the subnet's input and output ports are marked appropriately. In this case, the close bracket will cause the subnet to see end of stream, causing the usual wave of close-downs through the network. This is the only situation in FBP where processes can be closed down, and then restarted.
If you do an Excise, this information will automatically be copied to the generated External Port blocks.
This function will "excise" those blocks and arrows which are completely enclosed by the Enclosure block, and create a new subnet including those blocks and arrows. Arrows that cross the Enclosure boundary will have External Ports attached to them, which can be edited to specify the external port names, or to toggle the substream sensitivity indicator.
The "source" network will be shown with a new "subnet" block labelled ?.drw - the description of the enclosure also becomes the title of the subnet diagram (shown in bold underneath the editing area). Arrows crossing the Enclosure boundary in the "source" diagram will be attached roughly to the new subnet block - if the user wishes to change their position, they can be adjusted using the arrow "drag" function - either dragging the tail or the head of the arrow as appropriate.
Clicking on this function will allow all blocks and arrows within the enclosure to be moved as a unit (see Dragging below).