<?xml version="1.0" encoding="UTF-8"?>
<!--
   Copyright 2004 The Apache Software Foundation
  
   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at
  
       http://www.apache.org/licenses/LICENSE-2.0
  
   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
-->
<!-- $Id$ -->
<!DOCTYPE component-specification PUBLIC
  "-//Apache Software Foundation//Tapestry Specification 3.0//EN" 
  "http://jakarta.apache.org/tapestry/dtd/Tapestry_3_0.dtd">
	
<component-specification class="org.apache.tapestry.html.Rollover" allow-body="no">

  <description>
  A complex image component which must be wrapped by a link component.  Rollovers
  can reflect the enabled status of the link, and display rollover effects.
  </description>

  <parameter name="image" 
  	type="org.apache.tapestry.IAsset" 
  	required="yes"
  	direction="in">
    <description>
    The normal or default image to display, used as a default image for
    the other parameters.
    </description>
  </parameter>
  
  <parameter name="focus"
  	type="org.apache.tapestry.IAsset"
  	direction="in">
    <description>
    If specified, provides an image displayed when the cursor is moved
    over the link.
    </description>
  </parameter>
  
  <parameter name="blur" 
  	type="org.apache.tapestry.IAsset"
  	direction="in">
    <description>
    If specified, provides an image displayed when the cursor is moved
    off of the link.
    </description>
  </parameter>
  
  <parameter name="disabled"
  	type="org.apache.tapestry.IAsset"
  	direction="in">
    <description>
    If specified, provides an image displayed when the surrounding
    link is disabled.
    </description>
  </parameter>
  
  <reserved-parameter name="name"/>
  <reserved-parameter name="src"/>
  <reserved-parameter name="border"/>
  
</component-specification>
