GUIPipe

(Engine-Level Function)

Deprecated. Do not use in new code.

GUIPipes from older applications will still be drawn, but will be displayed as a wide line. GUIPipe statements are no longer generated by users drawing pipes in their applications.

Description: Draws a 3 dimensional, shaded pipe in a window and returns an indication when selected by a mouse button or the <ENTER> key.
Returns: GUI Object Return Codes
Usage: Steady State only.
Function Groups: Graphics
Format: GUIPipe(LeftReference, BottomReference, RightReference, TopReference, ScaleLeft, ScaleBottom, ScaleRight, ScaleTop, ScaleWhole, Trajectory, Rotation, Visibility, Reserved, Button, FocusID, FocusTrigger, LowIndex, HighIndex, PixelWidth, Path)
Parameters:  
LeftReference
A constant number that gives the left side reference coordinate. It must be a constant. A variable or expression is not valid here.
BottomReference
A constant number that gives the bottom side reference coordinate. It must be a constant. A variable or expression is not valid here. The top and bottom references are measured down from the top of the screen.
RightReference
A constant number that gives the right side reference coordinate. It must be a constant. A variable or expression is not valid here.
TopReference
A constant number that gives the top side reference coordinate. It must be a constant. A variable or expression is not valid here.
ScaleLeft
Required. Either a numeric expression, or any expression that returns a Normalize value. This parameter scales this side from its reference position with respect to the opposite side. If it is a numeric expression, a value of 1 will place the side at its reference position. A value of 0 will place it at the opposite side reference position. Similarly, a Normalize value will scale the side between the high and low limits. If the value is at the high level, the side will be at its reference position. If the value is at the low level, the side will be at the opposite side reference position.
ScaleBottom
Required. Either a numeric expression, or any expression that returns a Normalize value. This parameter scales this side from its reference position with respect to the opposite side. If it is a numeric expression, a value of 1 will place the side at its reference position. A value of 0 will place it at the opposite side reference position. Similarly, a Normalize value will scale the side between the high and low limits. If the value is at the high level, the side will be at its reference position. If the value is at the low level, the side will be at the opposite side reference position.
ScaleRight
Required. Either a numeric expression, or any expression that returns a Normalize value. This parameter scales this side from its reference position with respect to the opposite side. If it is a numeric expression, a value of 1 will place the side at its reference position. A value of 0 will place it at the opposite side reference position. Similarly, a Normalize value will scale the side between the high and low limits. If the value is at the high level, the side will be at its reference position. If the value is at the low level, the side will be at the opposite side reference position.
ScaleTop
Required. Either a numeric expression, or any expression that returns a Normalize value. This parameter scales this side from its reference position with respect to the opposite side. If it is a numeric expression, a value of 1 will place the side at its reference position. A value of 0 will place it at the opposite side reference position. Similarly, a Normalize value will scale the side between the high and low limits. If the value is at the high level, the side will be at its reference position. If the value is at the low level, the side will be at the opposite side reference position.
ScaleWhole
Required. Either a numeric expression, or any expression that returns a Normalize value. This parameter scales the horizontal and vertical dimensions by the specified factor before the left, bottom, right and top coordinates are scaled.
Trajectory
Required. Either a Trajectory function, a variable containing a Trajectory value, or a numeric expression. If this is a Trajectory value or function, the appropriate translation is applied to the image after the rotation is applied. If it is a valid numeric expression, the image isn't translated, but is displayed. Any other value is Invalid.
Rotation
Required. Either a Rotate function, a variable containing a Rotate value, or a numeric expression. If this is a Rotate value or function, the appropriate rotation is applied to the image before the trajectory is applied. If it is a valid numeric expression, the image is rotated clockwise the number of degrees specified. Any other value is Invalid.
Visibility
Required. Any logical expression. If true, the image is drawn normally. If false, the image is not drawn.
Reserved     n/a
Reserved for future use, set to 0.
Button

Required. Any numeric expression giving the button combination that activates this graphic.

Value

Locator Buttons

0

No button combination will activate this graphic

1

Right button

2

Middle button

3

Right and middle buttons

4

Left button

5

Left and right buttons

6

Left and middle buttons

7

All three buttons

If the above values are multiplied by 8, the meaning for multiple buttons pressed becomes "OR" rather than "AND." For example, to accept any button on a 2 or 3 button mouse, use 56 (i.e. 8 * 7). To accept the left mouse button regardless of whether the right button is pressed, use 32 (i.e. 8 * 4).

If a 64 is added to this parameter, the function will become true when the mouse buttons are released rather than when they are pressed.

FocusID
Required. Any numeric expression from 0 to 32767 giving the focus number of this graphic. If FocusID is zero, this graphic cannot receive the input focus. This parameter's value may be used in a NextFocusID statement to force this graphic to get the focus.
FocusTrigger
Required. Any logical expression. If FocusTrigger changes from a valid false to a valid true, this graphic will attempt to obtain focus.
LowIndex
Required. Any numeric expression specifying the low index into the current color palette. It is used in conjunction with the next parameter to adjust the brightness and contrast of the shading.
HighIndex
Required. Any numeric expression specifying the high index into the current color palette. It is used in conjunction with the previous parameter to adjust the brightness and contrast of the shading.
PixelWidth
Required. Any numeric expression specifying the width of the shaded pipe in pixels and is subject to applicable scaling factors.
Path
Required. Any expression that returns a Path value that is used to draw the pipe. This defines the pipe's shape.
The points do not describe absolute positions - that is controlled by the object's bounding box. What matters is the relation of the points to each other.
Comments: This function is a layered graphics statement. See "Use Scaling to Position GUI Objects" for information about positioning a layered graphic.
The pipe will be drawn with a miter effect, such that pipe segments meet at 45-degree angles. For best results, use a vertex mode of 4, which preserves right angles, as shown in the example.
The Left and Right references are interchangeable. Whichever is smaller is taken as the left and the larger of the two values will be used as the right. The same is true of the top and bottom references. Note that the 1st 42 pixels of a VTScada application will be obscured by the title bar, if present.

Example:

  BottomLeft = Point(385, 145, Invalid, Invalid);
  TopLeft = Point(385, 25, Invalid, Invalid);
  TopRight = Point(645, 25, Invalid, Invalid);
  BottomRight = Point(645, 145, Invalid, Invalid);
  GUIPipe(385, 145, 645, 25 { Bounding box of pipe },
          1, 1, 1, 1, 1 { No scaling },
          0, 0 { No trajectory or rotation },
          1, 0 { Pipe is visible; reserved },
          0, 0, 0 { Cannot be focused/selected },
          176, 239 { Very dark gray to very light gray },
          24 { Width of pipe in pixels },
          Path(1 { Closed path },
               Vertex(4 { ManhattanClosed Meaning that all lines are horizontal or vertical. Inspired by a skyline of tall, rectangular buildings. mode, right angles preserved },
                      BottomLeft, BottomLeft, BottomLeft),
               Vertex(4 { Manhattan mode, right angles preserved },
                      TopLeft, TopLeft, TopLeft),
               Vertex(4 { Manhattan mode, right angles preserved },
                      TopRight, TopRight, TopRight),
               Vertex(4 { Manhattan mode, right angles preserved },
                      BottomRight, BottomRight, BottomRight)));

This draws a pipe that follows an orthoganal path. The pipe is 24 pixels wide and is shaded from a dark to a light gray.

The first four parameters must be constants. See GUITransform for an example of how to compute the position dynamically.

GUITransform | Normalize | NextFocusID | Path | Pipe | Point | Rotate| Trajectory | Vertex | VStatus | ZPipe | GUIPolygon | PathDraw