<html>
<head>
<link rel="stylesheet" type="text/css" href="default.css" media="screen" />
</head>
<body>

  <h2>Canvas</h2>

  <p>
    With the help of a <code>GC</code> it is possible to draw on a
    <code>Canvas</code> widget.
    The usual functions like dots, lines, (rounded) rectangles, ovals, polylines,
    arcs, text and images are supported. All shapes can be outlined or (when
    closed) filled with any color and opacity.
  </p>

  <p>
    Try the example on the left. The controls at the bottom are:
  </p>

  <dl>
    <dt>Polyform</dt>
    <dd>
      Click on several points in the drawing area to draw a polyline. Close
      and fill the shape by clicking on the starting point.
    </dd>
    <dt>Oval</dt>
    <dd>
      Click to define the center, click once more to define the radius.
    </dd>
    <dt>Stamp</dt>
    <dd>
      Click once to draw an image into the area.
    </dd>
    <dt>Transparency</dt>
    <dd>
      Draw semi-transparent shapes.
    </dd>
    <dt>Clear</dt>
    <dd>
      Clears the drawing area.
    </dd>
  </dl>

</body>
</html>
