<?xml version="1.0" encoding="utf-8"?>
<!--
/* Copyright 2008, 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>

    <!-- DrawableStateProxyView specific attributes. These attributes are used to customize
         a DrawableStateProxyView view in XML files. -->
    <declare-styleable name="DrawableStateProxyView">
        <!-- The source view to delegate touch presses events to. -->
        <attr name="sourceViewId" format="integer" />
    </declare-styleable>

    <!-- Cling specific attributes. These attributes are used to customize
         the cling in XML files. -->
    <declare-styleable name="Cling">
        <!-- Used to identify how to draw the cling bg -->
        <attr name="drawIdentifier" format="string"  />
    </declare-styleable>

    <!-- Page Indicator specific attributes. These attributes are used to customize
         the cling in XML files. -->
    <declare-styleable name="PageIndicator">
        <!-- Used to identify how to draw the cling bg -->
        <attr name="windowSize" format="integer"  />
    </declare-styleable>

    <!-- Workspace specific attributes. These attributes are used to customize
         the workspace in XML files. -->
    <declare-styleable name="Workspace">
        <!-- The first screen the workspace should display. -->
        <attr name="defaultScreen" format="integer"  />
        <!-- The number of horizontal cells in the CellLayout -->
        <attr name="cellCountX" format="integer"  />
        <!-- The number of vertical cells in the CellLayout -->
        <attr name="cellCountY" format="integer"  />
    </declare-styleable>
    
    <!-- Hotseat specific attributes. These attributes are used to customize
         the hotseat in XML files. -->
    <declare-styleable name="Hotseat">
        <!-- The number of horizontal cells in the CellLayout -->
        <attr name="cellCountX" />
        <!-- The number of vertical cells in the CellLayout -->
        <attr name="cellCountY" />
    </declare-styleable>

    <!-- CellLayout specific attributes. These attributes are used to customize
         a CellLayout view in XML files. -->
    <declare-styleable name="CellLayout">
        <!-- The width of a single cell -->
        <attr name="cellWidth" format="dimension"  />
        <!-- The height of a single cell -->
        <attr name="cellHeight" format="dimension"  />
        <!-- An override for the width and height gap to allow users to specify
             a specific size for the page using spacing instead of resolving the
             spacing from the width of the page -->
        <attr name="widthGap" format="dimension" />
        <attr name="heightGap" format="dimension" />
        <!-- The max gap size for each dimension -->
        <attr name="maxGap" format="dimension" />
    </declare-styleable>

    <!-- StrokedTextView specific attributes. -->
    <declare-styleable name="StrokedTextView">
        <!-- The color of the stroke outline -->
        <attr name="strokeColor" format="color" />
        <!-- The color of the text -->
        <attr name="strokeTextColor" format="color" />
        <!-- The width of the stroke -->
        <attr name="strokeWidth" format="float" />
    </declare-styleable>

    <!-- HolographicLinearLayout specific attributes. -->
    <declare-styleable name="HolographicLinearLayout">
        <!-- The source view to generate and apply the drawable states to/from -->
        <attr name="sourceImageViewId" format="integer" />
        <attr name="stateHotwordOn" format="boolean" />
    </declare-styleable>

    <!-- PagedView specific attributes. These attributes are used to customize
         a PagedView view in XML files. -->
    <declare-styleable name="PagedView">
        <!-- A spacing override for the icons within a page -->
        <attr name="pageLayoutWidthGap" format="dimension" />
        <attr name="pageLayoutHeightGap" format="dimension" />
        <!-- The padding of the pages that are dynamically created per page -->
        <attr name="pageLayoutPaddingTop" format="dimension" />
        <attr name="pageLayoutPaddingBottom" format="dimension" />
        <attr name="pageLayoutPaddingLeft" format="dimension" />
        <attr name="pageLayoutPaddingRight" format="dimension" />
        <!-- The space between adjacent pages of the PagedView. -->
        <attr name="pageSpacing" format="dimension" />
        <!-- The page indicator for this workspace -->
        <attr name="pageIndicator" format="reference" />
    </declare-styleable>

    <!-- AppsCustomizePagedView specific attributes.  These attributes are used to
         customize an AppsCustomizePagedView in xml files. -->
    <declare-styleable name="AppsCustomizePagedView">
        <!-- Max number of cells of applications horizontally -->
        <attr name="maxAppCellCountX" format="integer" />
        <!-- Max number of cells of applications vertically -->
        <attr name="maxAppCellCountY" format="integer" />
        <!-- Horizontal spacing between widgets and wallpapers -->
        <attr name="widgetCellWidthGap" format="dimension" />
        <!-- Vertical spacing between widgets -->
        <attr name="widgetCellHeightGap" format="dimension" />
        <!-- Number of widgets horizontally -->
        <attr name="widgetCountX" format="integer" />
        <!-- Number of widgets vertically -->
        <attr name="widgetCountY" format="integer" />
        <!-- The x index of the item to be focused in the cling -->
        <attr name="clingFocusedX" format="integer" />
        <!-- The y index of the item to be focused in the cling -->
        <attr name="clingFocusedY" format="integer" />
    </declare-styleable>

    <!-- XML attributes used by default_workspace.xml -->
    <declare-styleable name="Favorite">
        <attr name="className" format="string" />
        <attr name="packageName" format="string" />
        <attr name="container" format="string" />
        <attr name="screen" format="string" />
        <attr name="x" format="string" />
        <attr name="y" format="string" />
        <attr name="spanX" format="string" />
        <attr name="spanY" format="string" />
        <attr name="icon" format="reference" />  
        <attr name="title" format="reference" />
        <attr name="uri" format="string" />
    </declare-styleable>
    <declare-styleable name="Extra">
        <attr name="key" format="string" />
        <attr name="value" format="string" />
    </declare-styleable>
    <declare-styleable name="Include">
        <attr name="workspace" format="reference" />
    </declare-styleable>

    <!-- Only used in the device overlays -->
    <declare-styleable name="CustomClingTitleText">
    </declare-styleable>
    <declare-styleable name="CustomClingText">
    </declare-styleable>
</resources>
