<?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'>
  <ui:style type='com.google.gerrit.client.diff.OverviewBar.Style'>
    .overview {
      position: relative;
    }
    .gutter {
      cursor: pointer;
      position: absolute;
      height: 3px;
      width: 6px;
      border: 1px solid grey;
      margin-left: 1px;
    }
    .halfGutter {
      cursor: pointer;
      position: absolute;
      height: 3px;
      width: 3px;
      background-color: #faa;
    }
    .comment, .draft {
      background-color: #fcfa96;
      z-index: 2;
    }
    .draft {
      text-align: center;
      font-size: small;
      line-height: 0.5;
      color: inherit !important;
      text-decoration: none !important;
    }
    .delete {
      background-color: #faa;
    }
    .insert {
      background-color: #9f9;
    }
    .viewport {
      position: absolute;
      background-color: rgba(128, 128, 128, 0.50);
      border: 1px solid #444;
      width: 8px;
      cursor: default;
      z-index: 3;
      border-radius: 4px;
    }
    .viewportDrag {
      cursor: move;
    }
  </ui:style>
  <g:HTMLPanel styleName='{style.overview}'>
    <g:Label ui:field='viewport' styleName='{style.viewport}'/>
  </g:HTMLPanel>
</ui:UiBinder>
