<?xml version="1.0" encoding="utf-8"?>
<!--
 Copyright 2010-2014, Google Inc.
 All rights reserved.

 Redistribution and use in source and binary forms, with or without
 modification, are permitted provided that the following conditions are
 met:

     * Redistributions of source code must retain the above copyright
 notice, this list of conditions and the following disclaimer.
     * Redistributions in binary form must reproduce the above
 copyright notice, this list of conditions and the following disclaimer
 in the documentation and/or other materials provided with the
 distribution.
     * Neither the name of Google Inc. nor the names of its
 contributors may be used to endorse or promote products derived from
 this software without specific prior written permission.

 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-->
<!-- This is intended to be used for:
     - Volantis (1024 x 768 dp, screenHeightDp: 695 dp)
     And larger ones than above.
-->
<resources>

  <!-- symbol_view_major_category_height = input_frame_height / 4 (3 is for candidate rows, 1 is for major category) -->
  <dimen name="symbol_view_major_category_height">68.25dip</dimen>

  <!--
       ime_window_height = input_frame_height + (candidate_text_size + candidate_vertical_padding_size * 2) * n
       n = 2 for portrait. Otherwise n = 1.
    -->
  <dimen name="ime_window_height">323dip</dimen>
  <dimen name="input_frame_height">273dip</dimen>

  <!-- symbol_view_height = input_frame_height + (candidate_text_size + candidate_vertical_padding_size * 2) -->
  <dimen name="symbol_view_height">323dip</dimen>
  <!-- symbol_view_number_keyboard_height = input_frame_height - symbol_view_major_category_height -->
  <dimen name="symbol_view_number_keyboard_height">204.75dip</dimen>
  <!-- button_frame_height = candidate_text_size + candidate_vertical_padding_size * 2 -->
  <dimen name="button_frame_height">50dip</dimen>

  <!-- Character size of keyboard, depending on the screen size. -->
  <dimen name="keyboard_qwerty_default_height">47dip</dimen>
  <dimen name="keyboard_twelvekeys_default_height">75dip</dimen>
  <dimen name="keyboard_godan_default_height">51dip</dimen>

  <!-- 20% bigger than default. -->
  <dimen name="symbol_close_button_width">41dip</dimen>
  <dimen name="symbol_major_emoji_disable_icon_height">19dip</dimen>
  <dimen name="symbol_major_emoji_height">24dip</dimen>
  <dimen name="symbol_major_emoticon_height">20dip</dimen>
  <dimen name="symbol_major_number_height">17dip</dimen>
  <dimen name="symbol_major_symbol_height">20dip</dimen>
  <dimen name="symbol_minor_default_height">24dip</dimen>
  <dimen name="symbol_minor_emoticon_height">19dip</dimen>

</resources>
