<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (C) 2014 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'>
    .bubble {
      z-index: 150;
      white-space: nowrap;
      line-height: 16px;
      cursor: pointer;
    }
    .message {
      background: #fff1a8;
      padding-left: 5px;
      padding-right: 5px;
      border-radius: 5px;
      border: 1px solid #aaa;
      font-family: sans-serif;
      font-size: smaller;
      font-style: italic;
      vertical-align: top;
    }
    .message b {
      vertical-align: top;
    }
  </ui:style>
  <g:HTMLPanel styleName='{style.bubble}'>
    <g:Image ui:field='icon'
        styleName=''
        resource='{res.draftComments}'
        title='Create a new inline comment'>
      <ui:attribute name='title'/>
    </g:Image><span class='{style.message}'><ui:msg>press <b>c</b> to comment</ui:msg></span>
  </g:HTMLPanel>
</ui:UiBinder>