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

<!-- =============================== -->
<!-- GlowPadView class attributes -->
<!-- =============================== -->
<resources>
    <declare-styleable name="GlowPadView">
        <attr name="android:gravity"/>

        <!-- Reference to an array resource that be shown as targets around a circle. -->
        <attr name="targetDrawables" format="reference"/>

        <!-- Reference to an array resource that be used as description for the targets around the circle. -->
        <attr name="targetDescriptions" format="reference"/>

        <!-- Reference to an array resource that be used to announce the directions with targets around the circle. -->
        <attr name="directionDescriptions" format="reference"/>

        <!-- Sets a drawable as the center. -->
        <attr name="handleDrawable" format="reference"/>

        <!-- Drawable to use for wave ripple animation. -->
        <attr name="outerRingDrawable" format="reference"/>

        <!-- Drawble used for drawing points -->
        <attr name="pointDrawable" format="reference"/>

        <!-- Inner radius of glow area. -->
        <attr name="innerRadius" format="dimension"/>

        <!-- Outer radius of glow area. Target icons will be drawn on this circle. -->
        <attr name="outerRadius" format="dimension"/>

        <!-- Size of target radius. Points within this distance of target center is a "hit". -->
        <!--
        <attr name="hitRadius" format="dimension"/>
        -->

        <!-- Radius of glow under finger. -->
        <attr name="glowRadius" format="dimension"/>

        <!-- Tactile feedback duration for actions. Set to '0' for no vibration. -->
        <attr name="vibrationDuration" format="integer"/>

        <!-- How close we need to be before snapping to a target. -->
        <attr name="snapMargin" format="dimension"/>

        <!-- Number of waves/chevrons to show in animation. -->
        <attr name="feedbackCount" format="integer"/>

        <!-- Used when the handle shouldn't wait to be hit before following the finger -->
        <attr name="alwaysTrackFinger" format="boolean"/>
    </declare-styleable>

    <declare-styleable name="AnalogClock">
        <attr name="jewelRadius" format="dimension"/>
        <attr name="jewelOffset" format="dimension"/>
        <attr name="jewelColor" format="color"/>
    </declare-styleable>

</resources>
