<?xml version="1.0"?>
<!--
 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. See accompanying LICENSE file.
-->
<project name="Slider ${project.version}">
<!--

  <skin>
    <groupId>org.apache.maven.skins</groupId>
    <artifactId>maven-stylus-skin</artifactId>
    <version>1.2</version>
  </skin>



  <skin>
    <groupId>org.apache.maven.skins</groupId>
    <artifactId>maven-fluido-skin</artifactId>
    <version>1.3.0</version>
  </skin>

-->
  <skin>
    <groupId>org.apache.maven.skins</groupId>
    <artifactId>maven-application-skin</artifactId>
    <version>1.0</version>
  </skin>

  <custom>
    <fluidoSkin>
      <topBarEnabled>true</topBarEnabled>
      <sideBarEnabled>false</sideBarEnabled>
    </fluidoSkin>
  </custom>

  <version position="right"/>

  <body>
    <menu ref="reports"/>

    <menu name="Documents">
      <item name="Getting Started" href="/getting_started.html"/>
      <item name="manpage" href="/manpage.html"/>
      <item name="Troubleshooting" href="/troubleshooting.html"/>
      <item name="Architecture" href="/architecture/index.html"/>
      <item name="Developing" href="/developing/index.html"/>
      <item name="Exitcodes" href="/exitcodes.html"/>
    </menu>
  </body>
</project>
