<?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>
    <dimen name="abc_dialog_corner_radius_material">2dp</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>
