<?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 gss='false'>
    @def BUTTON_HEIGHT 14px;

    #change_actions {
      padding-top: 2px;
      padding-bottom: 20px;
    }

    #change_actions button {
      margin: 6px 3px 0 0;
      text-align: center;
      font-size: 8pt;
      font-weight: bold;
      border: 2px solid;
      cursor: pointer;
      color: rgba(0, 0, 0, 0.15);
      background-color: #f5f5f5;
      -webkit-border-radius: 2px;
      -webkit-box-sizing: content-box;
    }
    #change_actions button div {
      color: #444;
      min-width: 54px;
      white-space: nowrap;
      height: BUTTON_HEIGHT;
      line-height: BUTTON_HEIGHT;
    }

    #change_actions button.submit {
      float: right;
      background-color: #4d90fe;
      background-image: -webkit-linear-gradient(top, #4d90fe, #4d90fe);
    }
    #change_actions button.submit div {color: #fff;}

    #change_actions button:disabled {
      font-weight: normal;
      background-color: #999;
      background-image: -webkit-linear-gradient(top, #999, #999);
    }
  </ui:style>

  <g:FlowPanel>
    <g:Button ui:field='cherrypick' styleName='' visible='false'>
      <div><ui:msg>Cherry Pick</ui:msg></div>
    </g:Button>
    <g:Button ui:field='rebase' styleName='' visible='false'>
      <div><ui:msg>Rebase</ui:msg></div>
    </g:Button>
    <g:Button ui:field='revert' styleName='' visible='false'>
      <div><ui:msg>Revert</ui:msg></div>
    </g:Button>
    <g:Button ui:field='abandon' styleName='' visible='false'>
      <div><ui:msg>Abandon</ui:msg></div>
    </g:Button>
    <g:Button ui:field='restore' styleName='' visible='false'>
      <div><ui:msg>Restore</ui:msg></div>
    </g:Button>
    <g:Button ui:field='followUp' styleName='' visible='false'>
      <div><ui:msg>Follow-Up</ui:msg></div>
    </g:Button>

    <g:Button ui:field='submit' styleName='{style.submit}' visible='false'/>
  </g:FlowPanel>
</ui:UiBinder>
