<?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>
    <dimen name="setting_popup_right_margin">@dimen/setting_popup_right_margin_large</dimen>
    <dimen name="setting_row_height">@dimen/setting_row_height_large</dimen>
    <dimen name="setting_popup_window_width">@dimen/setting_popup_window_width_large</dimen>
    <dimen name="setting_item_icon_width">@dimen/setting_item_icon_width_large</dimen>
    <dimen name="onscreen_indicators_height">@dimen/onscreen_indicators_height_large</dimen>
    <dimen name="shutter_offset">-33dp</dimen>
    <dimen name="capture_size">80dip</dimen>
    <dimen name="capture_margin_top">16dip</dimen>
    <dimen name="camera_controls_size">520dip</dimen>

    <!-- Mode selector text size -->
    <dimen name="mode_selector_text_size">24sp</dimen>

    <!-- Mode selector icon width -->
    <dimen name="mode_selector_icon_block_width">84dp</dimen>
    <dimen name="mode_selector_icon_drawable_size">72dp</dimen>
    <dimen name="mode_selector_item_height">90dp</dimen>

    <dimen name="bottom_bar_height_min">124dp</dimen>
    <dimen name="bottom_bar_height_max">180dp</dimen>
    <dimen name="bottom_bar_height_optimal">144dp</dimen>
</resources>
