A Contour is a combination of overlapping background frames. A Contour features the same Option Database entries a background frame does.

Figure 6.1. A Contour

A Contour

Contours are grouped by using curly braces around their items. The group leader defines the appearance of the entire contour. The Option Database entries are retrieved for the leader and applied on the composed shape.

Figure 6.2. A Contour and constituting Frames

A Contour and constituting Frames

Custom Contours, Version 1.1

Custom contours are possible, starting with version 1.1. Two predefined contour types are shipped with Gstripes

  • quadratic

    The standard, rounded contour.

  • splines

    Introduced with version 1.1, requires tclspline.

Figure 6.3. Contour with Splines

The »+« and »-« symbols signify the method with which the following frames are integrated in the contour. »+« and »-« extend or reduce the contour respectively.

The contour starts with the leading frame and the second frame will be added or removed from it. Further frames will be applied onto the result of the previous constituted contour.

A Contour is created from all of its frames, and every connection between these frames is considered.

The resulting contour must not contain any holes. Instead use custom contours to create contours with holes.

Touching windows are considered for building a contour, inside neighboring grid cells for example.

Every contour is dynamically created from its constituting windows. The »stroke« property in TkPath objects is drawn on the edge of a figure. This means that a contour featuring a border, will be half the border size larger; in each direction than the windows from which it was created.

Make sure that the contour items have the same toplevel window as their ancestor. Gstripes corrects the placement of a contour, in situations were Gstripes is foreign to the windows constituting the contour. The contour leader coordinates are being used for this correction.

The contour is recreated during any resize event. The contour itself thus changes in response to every resize event. This might lead to invalid contour definitions (which can’t be handled properly by Gstripes).

I recommend to design the contour for the smallest possible dialog size.