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

  <h2>Label</h2>

  <p>
  The Label is a simple widget that can display text or an image, but not both.
  The orientation can be set using the style flags <code>LEFT</code>,
  <code>RIGHT</code>, and <code>CENTER</code>
  </p>

  <p>
  If the style flag <code>SEPARATOR</code> is applied, the label acts as a
  separator line, as it can be seen between the image labels in the example.
  Using <code>HORIZONTAL</code> or <code>VERTICAL</code>, the orientation of
  the separator can be set.
  </p>
 
  <p>
  Separator labels can be styled using the style flags <code>SHADOW_IN</code>,
  <code>SHADOW_OUT</code>, and <code>SHADOW_NONE</code>.
  </p>

  <h2>CLabel</h2>
  <p>
  Unlike the simple Label, the CLabel can display both text <em>and</em> image
  at the same time.
  It also supports the style flags
  <code>SHADOW_IN</code>, <code>SHADOW_OUT</code>, and <code>SHADOW_NONE</code>.
  </p>

  <h2>Link</h2>
  <p>
  The Link is a Label-like widget that can include hyperlinks in its text.
  Clicking one of the hyperlinks fires a selection event.
  </p>

</pre>
</body>
</html>