<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (C) 2012 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:with field='res' type='com.google.gerrit.client.GerritResources'/>
  <ui:style gss='false' type='com.google.gerrit.client.patches.PatchSetSelectBox.BoxStyle'>
    @eval selectionColor com.google.gerrit.client.Gerrit.getTheme().selectionColor;
    @eval backgroundColor com.google.gerrit.client.Gerrit.getTheme().backgroundColor;

    .linkPanel {
      font-size: 12px;
      white-space: normal;
    }

    .linkPanel > div {
      padding-left: 3px;
      padding-right: 3px;
      vertical-align: middle;
      display: inline-block;
    }

    .patchSetLabel {
      font-weight: bold;
    }

    .sideMarker {
      font-family: monospace;
    }

    .linkPanel > a {
      padding-left: 3px;
      padding-right: 3px;
      text-decoration: none;
      vertical-align: middle;
      display: inline-block;
    }

    .selected {
      font-weight: bold;
      background-color: selectionColor;
    }

    .hidden {
      visibility: hidden;
    }
  </ui:style>

  <g:HTMLPanel>
    <g:HTMLPanel styleName='{style.linkPanel}' ui:field='linkPanel'/>
  </g:HTMLPanel>
</ui:UiBinder>

