<?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.
-->

<resources>
    <!-- Maximum width for a stacked action bar tab. This prevents
         action bar tabs from becoming too wide on a wide screen when only
         a few are present. -->
    <dimen name="abc_action_bar_stacked_tab_max_width">180dp</dimen>

    <!-- Maximum height for a stacked tab bar as part of an action bar -->
    <dimen name="abc_action_bar_stacked_max_height">48dp</dimen>
    <!-- Size of the indeterminate Progress Bar -->
    <dimen name="abc_action_bar_progress_bar_size">40dp</dimen>

    <dimen name="abc_panel_menu_list_width">296dp</dimen>

    <!-- Preferred width of the search view. -->
    <dimen name="abc_search_view_preferred_width">320dip</dimen>
    <dimen name="abc_search_view_preferred_height">48dip</dimen>

    <!-- Text padding for dropdown items -->
    <dimen name="abc_dropdownitem_text_padding_left">8dip</dimen>
    <dimen name="abc_dropdownitem_text_padding_right">8dip</dimen>
    <!-- Width of the icon in a dropdown list -->
    <dimen name="abc_dropdownitem_icon_width">32dip</dimen>

    <!-- The platform's desired fixed width for a dialog along the major axis
         (the screen is in landscape). This may be either a fraction or a dimension.-->
    <item type="dimen" name="abc_dialog_fixed_width_major">320dp</item>
    <!-- The platform's desired fixed width for a dialog along the minor axis
         (the screen is in portrait). This may be either a fraction or a dimension.-->
    <item type="dimen" name="abc_dialog_fixed_width_minor">320dp</item>
    <!-- The platform's desired fixed height for a dialog along the major axis
         (the screen is in portrait). This may be either a fraction or a dimension.-->
    <item type="dimen" name="abc_dialog_fixed_height_major">80%</item>
    <!-- The platform's desired fixed height for a dialog along the minor axis
         (the screen is in landscape). This may be either a fraction or a dimension.-->
    <item type="dimen" name="abc_dialog_fixed_height_minor">100%</item>

    <dimen name="abc_button_inset_vertical_material">6dp</dimen>
    <dimen name="abc_button_inset_horizontal_material">@dimen/abc_control_inset_material</dimen>
    <!-- Default inner padding within buttons -->
    <dimen name="abc_button_padding_vertical_material">@dimen/abc_control_padding_material</dimen>
    <dimen name="abc_button_padding_horizontal_material">8dp</dimen>

    <!-- Default insets (outer padding) around controls -->
    <dimen name="abc_control_inset_material">4dp</dimen>
    <!-- Default inner padding within controls -->
    <dimen name="abc_control_padding_material">4dp</dimen>
    <!-- Default rounded corner for controls -->
    <dimen name="abc_control_corner_material">2dp</dimen>

    <dimen name="abc_edit_text_inset_horizontal_material">4dp</dimen>
    <dimen name="abc_edit_text_inset_top_material">10dp</dimen>
    <dimen name="abc_edit_text_inset_bottom_material">7dp</dimen>

    <!-- Since optical insets are not available pre-v18, we add a small amount of padding -->
    <dimen name="abc_switch_padding">3dp</dimen>

    <dimen name="abc_dialog_padding_material">24dp</dimen>
    <dimen name="abc_dialog_padding_top_material">18dp</dimen>
    <dimen name="abc_dialog_title_divider_material">8dp</dimen>
    <dimen name="abc_dialog_list_padding_top_no_title">8dp</dimen>
    <dimen name="abc_dialog_list_padding_bottom_no_buttons">8dp</dimen>

    <!-- Dialog button bar height -->
    <dimen name="abc_alert_dialog_button_bar_height">48dp</dimen>

    <!-- Dialog padding minus control padding, used to fix alignment. -->
    <dimen name="abc_select_dialog_padding_start_material">20dp</dimen>

    <!-- The platform's desired minimum size for a dialog's width when it
         is along the major axis (that is the screen is landscape).  This may
         be either a fraction or a dimension. -->
    <item type="dimen" name="abc_dialog_min_width_major">65%</item>

    <!-- The platform's desired minimum size for a dialog's width when it
         is along the minor axis (that is the screen is portrait).  This may
         be either a fraction or a dimension. -->
    <item type="dimen" name="abc_dialog_min_width_minor">95%</item>

    <!-- Minimum "smallest width" of the display for cascading menus to be enabled. -->
    <dimen name="abc_cascading_menus_min_smallest_width">720dp</dimen>

    <!-- Dimension of the AlertDialog button icon -->
    <dimen name="abc_alert_dialog_button_dimen">48dp</dimen>

    <!-- Tooltip dimensions. -->
    <!-- Vertical offset from the edge of the anchor view for a touch-triggered tooltip. -->
    <dimen name="tooltip_y_offset_touch">16dp</dimen>
    <!-- Vertical offset from the edge of the anchor view for a non-touch-triggered tooltip. -->
    <dimen name="tooltip_y_offset_non_touch">0dp</dimen>
    <!-- The tooltip does not get closer than this to the window edge -->
    <dimen name="tooltip_margin">8dp</dimen>
    <!-- Left/right padding of the tooltip text. -->
    <dimen name="tooltip_horizontal_padding">16dp</dimen>
    <!-- Top/bottom padding of the tooltip text. -->
    <dimen name="tooltip_vertical_padding">6.5dp</dimen>
    <!-- Border corner radius of the tooltip window. -->
    <dimen name="tooltip_corner_radius">2dp</dimen>
    <!-- View with the height equal or above this threshold will have a tooltip anchored
    to the mouse/touch position -->
    <dimen name="tooltip_precise_anchor_threshold">96dp</dimen>
    <!-- Extra tooltip offset used when anchoring to the mouse/touch position -->
    <dimen name="tooltip_precise_anchor_extra_offset">8dp</dimen>
</resources>
