<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2009 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>
<!-- Cling -->
    <dimen name="clingPunchThroughGraphicCenterRadius">94dp</dimen>
    <dimen name="folderClingMarginTop">20dp</dimen>
    <!-- The offset for the text in the cling -->
    <dimen name="cling_text_block_offset_x">0dp</dimen>
    <dimen name="cling_text_block_offset_y">0dp</dimen>
    <dimen name="reveal_radius">48dp</dimen>
    <!-- entries for custom clings, will be set in overlays -->
    <add-resource type="dimen" name="custom_cling_margin_top" />
    <add-resource type="dimen" name="custom_cling_margin_right" />
    <add-resource type="dimen" name="custom_cling_margin_left" />

<!-- Workspace -->
    <!-- qsb_bar_height_inset represents qsb_bar_height minus the padding
         that we put on each page for allowing folders to draw out of bounds -->
    <dimen name="qsb_bar_height_inset">34dp</dimen>
    <dimen name="qsb_bar_height">40dp</dimen>
    <dimen name="qsb_padding_left">0dp</dimen>
    <dimen name="qsb_padding_right">0dp</dimen>
    <dimen name="search_bar_height">40dp</dimen>
    <dimen name="workspace_max_gap">16dp</dimen>
    <dimen name="folder_cell_width">74dp</dimen>
    <dimen name="folder_cell_height">82dp</dimen>
    <dimen name="folder_icon_padding_top">2dp</dimen>
    <dimen name="workspace_divider_padding_left">3dp</dimen>
    <dimen name="workspace_divider_padding_right">3dp</dimen>
    <dimen name="workspace_divider_padding_top">0dp</dimen>
    <dimen name="workspace_divider_padding_bottom">0dp</dimen>
    <dimen name="hotseat_cell_width">64dp</dimen>
    <dimen name="hotseat_cell_height">64dp</dimen>
    <dimen name="hotseat_width_gap">-1dp</dimen>
    <dimen name="hotseat_height_gap">-1dp</dimen>
    <dimen name="workspace_overscroll_drawable_padding">0dp</dimen>
    <dimen name="workspace_icon_text_size">12sp</dimen>
    <dimen name="workspace_spring_loaded_page_spacing">15dp</dimen>

    <dimen name="app_icon_drawable_padding">6dp</dimen>
    <dimen name="app_icon_drawable_padding_land">2dp</dimen>
    <dimen name="app_icon_padding_top">8dp</dimen>

<!-- QSB -->
    <dimen name="toolbar_button_vertical_padding">0dip</dimen>
    <dimen name="toolbar_button_horizontal_padding">12dip</dimen>
    <!-- External toolbar icon size (for bounds) -->
    <dimen name="toolbar_external_icon_width">36dp</dimen>
    <dimen name="toolbar_external_icon_height">36dp</dimen>

<!-- AllApps/Customize/AppsCustomize -->
    <integer name="apps_customize_maxCellCountX">-1</integer>
    <integer name="apps_customize_maxCellCountY">-1</integer>
    <!-- The height of the tab bar - if this changes, we should update the
         external icon width/height above to compensate -->
    <dimen name="apps_customize_tab_bar_height">52dp</dimen>
    <dimen name="apps_customize_tab_bar_margin_top">0dp</dimen>
    <dimen name="app_icon_size">48dp</dimen>
    <!-- The width can be 72dp because we don't have L/R padding -->
    <dimen name="apps_customize_cell_width">74dp</dimen>
    <dimen name="apps_customize_cell_height">82dp</dimen>
    <dimen name="apps_customize_max_gap">18dp</dimen>
    <dimen name="apps_customize_widget_cell_width_gap">10dp</dimen>
    <dimen name="apps_customize_widget_cell_height_gap">8dp</dimen>

    <!-- height of the bottom row of controls -->
    <dimen name="button_bar_height">62dip</dimen>
    <!-- Because portal animations go beyond the bounds of an icon, we need
         to make the dock layout slightly larger than the button_bar_height -->
    <dimen name="button_bar_height_top_padding">8dp</dimen>
    <dimen name="button_bar_height_bottom_padding">0dp</dimen>
    <dimen name="button_bar_width_left_padding">0dp</dimen>
    <dimen name="button_bar_width_right_padding">0dp</dimen>
    <dimen name="button_bar_height_plus_padding">70dp</dimen>

    <!-- Drag padding to add to the bottom of drop targets -->
    <dimen name="drop_target_drag_padding">14dp</dimen>

<!-- Dragging -->
    <!-- the area at the edge of the screen that makes the workspace go left
         or right while you're dragging. -->
    <dimen name="scroll_zone">20dp</dimen>

    <!-- When dragging items on the workspace, the number of dps by which the position of
     the drag view should be offset from the position of the original view. -->
    <dimen name="dragViewOffsetX">0dp</dimen>
    <dimen name="dragViewOffsetY">0dp</dimen>
    <!--  When dragging an item, how much bigger (fixed dps) the dragged view
          should be. If 0, it will not be scaled at all. -->
    <dimen name="dragViewScale">12dp</dimen>

    <!-- Padding applied to AppWidget previews -->
    <dimen name="app_widget_preview_padding_left">16dp</dimen>
    <dimen name="app_widget_preview_padding_right">16dp</dimen>
    <dimen name="app_widget_preview_padding_top">32dp</dimen>
    <dimen name="app_widget_preview_label_margin_top">4dp</dimen>
    <dimen name="app_widget_preview_label_margin_left">2dp</dimen>
    <dimen name="app_widget_preview_label_margin_right">2dp</dimen>

    <!-- Padding applied to shortcut previews -->
    <dimen name="shortcut_preview_padding_left">0dp</dimen>
    <dimen name="shortcut_preview_padding_right">0dp</dimen>
    <dimen name="shortcut_preview_padding_top">0dp</dimen>

<!-- Folders -->
    <!-- The size of the image which sits behind the preview of the folder contents -->
    <dimen name="folder_preview_size">62dp</dimen>
    <!-- The amount that the preview contents are inset from the preview background -->
    <dimen name="folder_preview_padding">4dp</dimen>
    <dimen name="folder_name_padding">10dp</dimen>
    <dimen name="folder_width_gap">0dp</dimen>
    <dimen name="folder_height_gap">0dp</dimen>
    <dimen name="folder_padding">0dp</dimen>

<!-- CellLayout padding -->
    <dimen name="cell_layout_left_padding_port">0dp</dimen>
    <dimen name="cell_layout_left_padding_land">0dp</dimen>
    <dimen name="cell_layout_right_padding_port">0dp</dimen>
    <dimen name="cell_layout_right_padding_land">0dp</dimen>
    <dimen name="cell_layout_top_padding_port">6dp</dimen>
    <dimen name="cell_layout_top_padding_land">0dp</dimen>
    <dimen name="cell_layout_bottom_padding_port">0dp</dimen>
    <dimen name="cell_layout_bottom_padding_land">0dp</dimen>

<!-- Workspace padding -->
    <dimen name="workspace_left_padding_port">0dp</dimen>
    <dimen name="workspace_left_padding_land">@dimen/qsb_bar_height</dimen>
    <dimen name="workspace_right_padding_port">0dp</dimen>
    <dimen name="workspace_right_padding_land">@dimen/button_bar_height</dimen>
    <dimen name="workspace_top_padding_port">@dimen/qsb_bar_height_inset</dimen>
    <dimen name="workspace_top_padding_land">0dp</dimen>
    <dimen name="workspace_bottom_padding_port">@dimen/button_bar_height</dimen>
    <dimen name="workspace_bottom_padding_land">0dp</dimen>

<!-- Workspace cell size -->
    <dimen name="workspace_cell_width_land">106dp</dimen>
    <dimen name="workspace_cell_width_port">80dp</dimen>
    <dimen name="workspace_cell_height_land">74dp</dimen>
    <dimen name="workspace_cell_height_port">100dp</dimen>
    <dimen name="workspace_width_gap_land">0dp</dimen>
    <dimen name="workspace_width_gap_port">0dp</dimen>
    <dimen name="workspace_height_gap_land">0dp</dimen>
    <dimen name="workspace_height_gap_port">0dp</dimen>
</resources>
