<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (C) 2013 The Android Open Source Project

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.
-->
<ui:UiBinder
    xmlns:ui='urn:ui:com.google.gwt.uibinder'
    xmlns:g='urn:import:com.google.gwt.user.client.ui'
    xmlns:x='urn:import:com.google.gerrit.client.ui'>
  <ui:with field='ico' type='com.google.gerrit.client.GerritResources'/>
  <ui:with field='res' type='com.google.gerrit.client.diff.Resources'/>
  <ui:style gss='false'>
  .header {
    position: relative;
    height: 16px;
    line-height: 16px;
  }
  .reviewed input {
    margin: 0;
    padding: 0;
    vertical-align: middle;
  }
  .path {
    white-space: nowrap;
  }
  .fileCount {
    white-space: nowrap;
    position: relative;
    bottom: 4px;
  }
  .navigation {
    position: absolute;
    top: 0;
    right: 10px;
    height: 16px;
    line-height: 16px;
  }
  .nodiff {
    white-space: nowrap;
    color: #B00000;
    vertical-align: top;
    font-weight: bold;
    margin-right: 1em;
    float: left;
  }
  .linkPanel {
    float: left;
  }
  .linkPanel img {
    padding-right: 3px;
  }
  .preferences {
    cursor: pointer;
  }
  </ui:style>
  <g:HTMLPanel styleName='{style.header}'>
    <g:CheckBox ui:field='reviewed'
        styleName='{style.reviewed}'
        title='Mark file as reviewed (Shortcut: r)'>
      <ui:attribute name='title'/>
    </g:CheckBox>
    <span class='{style.path}'><span ui:field='project'/> / <span ui:field='filePath'/></span>
    <div class='{style.navigation}'>
      <span ui:field='noDiff' class='{style.nodiff}'><ui:msg>No Differences</ui:msg></span>
      <g:FlowPanel ui:field='linkPanel' styleName='{style.linkPanel}'/>
      <span class='{style.fileCount}'>
        <ui:msg>File <span ui:field='fileNumber'/> of <span ui:field='fileCount'/></ui:msg>
      </span>
      <x:InlineHyperlink ui:field='prev' styleName='{res.style.goPrev}'/>
      <x:InlineHyperlink ui:field='up'
          styleName='{res.style.goUp}'
          title='Up to change (Shortcut: u)'>
        <ui:attribute name='title'/>
      </x:InlineHyperlink>
      <x:InlineHyperlink ui:field='next' styleName='{res.style.goNext}'/>
      <g:Image ui:field='preferences'
           styleName='{style.preferences}'
           resource='{ico.gear}'
           title='Diff preferences (Shortcut: ,)'>
         <ui:attribute name='title'/>
      </g:Image>
    </div>
  </g:HTMLPanel>
</ui:UiBinder>
