<?xml version="1.0" encoding="utf-8"?>
<!--
     Copyright (C) 2014 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>
    <declare-styleable name="lbBaseGridView">
        <!-- Allow DPAD key to navigate out at the front of the View (where position = 0),
             default is false  -->
        <attr name="focusOutFront" format="boolean" />
        <!-- Allow DPAD key to navigate out at the end of the view, default is false -->
        <attr name="focusOutEnd" format="boolean" />
        <!-- Defining margin between two items horizontally -->
        <attr name="horizontalMargin" format="dimension" />
        <!-- Defining margin between two items vertically -->
        <attr name="verticalMargin" format="dimension" />
        <!-- Defining gravity of child view -->
        <attr name="android:gravity" />
    </declare-styleable>

    <declare-styleable name="lbHorizontalGridView">
        <!-- Defining height of each row of HorizontalGridView -->
        <attr name="rowHeight" format="dimension" >
            <enum name="wrap_content" value="-2" />
        </attr>
        <!-- Defining number of rows -->
        <attr name="numberOfRows" format="integer" />
    </declare-styleable>

    <declare-styleable name="lbVerticalGridView">
        <!-- Defining width of each column of VerticalGridView -->
        <attr name="columnWidth" format="dimension" >
            <enum name="wrap_content" value="-2" />
        </attr>
        <!-- Defining number of columns -->
        <attr name="numberOfColumns" format="integer" />
    </declare-styleable>

    <declare-styleable name="lbBaseCardView">
        <!-- Defines the type of the card layout -->
        <attr name="cardType" format="enum">
            <!-- A simple card layout with a single layout region. -->
            <enum name="mainOnly" value="0" />
            <!-- A card layout with two layout regions: a main area which is
                 always visible, and an info region that appears over the lower
                 area of the main region. -->
            <enum name="infoOver" value="1" />
            <!-- A card layout with two layout regions: a main area which is
                 always visible, and an info region that appears below the main
                 region. -->
            <enum name="infoUnder" value="2" />
            <!-- A card layout with three layout regions: a main area which is
                 always visible, an info region that appears below the main
                 region, and an extra region that appears below the info region
                 after a small delay. -->
            <enum name="infoUnderWithExtra" value="3" />
        </attr>
        <!-- Defines when the info region of a card layout is displayed. -->
        <attr name="infoVisibility" format="enum">
            <!-- Always display the info region. -->
            <enum name="always" value="0"/>
            <!-- Display the info region only when activated. -->
            <enum name="activated" value="1"/>
            <!-- Display the info region only when selected. -->
            <enum name="selected" value="2"/>
        </attr>
        <!-- Defines when the extra region of a card layout is displayed.
             Depends on infoVisibility, meaning the extra region never displays
             if the info region is not displayed as well. -->
        <attr name="extraVisibility" format="enum">
            <!-- Always display the extra region. -->
            <enum name="always" value="0"/>
            <!-- Display the extra region only when activated. -->
            <enum name="activated" value="1"/>
            <!-- Display the extra region only when selected. -->
            <enum name="selected" value="2"/>
        </attr>
        <!-- Defines the delay in milliseconds before the selection animation
             runs for a card layout. -->
        <attr name="selectedAnimationDelay" format="integer" />
        <!-- Defines the duration in milliseconds of the selection animation for
             a card layout. -->
        <attr name="selectedAnimationDuration" format="integer" />
        <!-- Defines the duration in milliseconds of the activated animation for
             a card layout. -->
        <attr name="activatedAnimationDuration" format="integer" />
    </declare-styleable>

    <!-- This is the basic set of layout attributes for elements within a card
         layout. These attributes are specified with the rest of an elements's
         normal attributes. -->
    <declare-styleable name="lbBaseCardView_Layout">
        <!-- The card layout region defined by this element. At most one of
             element of each type should be specified as an immediate child of
             the card layout. -->
        <attr name="layout_viewType" format="enum">
            <!-- The main region of the card. -->
            <enum name="main" value="0"/>
            <!-- The info region of the card. -->
            <enum name="info" value="1"/>
            <!-- The extra region of the card. -->
            <enum name="extra" value="2"/>
        </attr>
    </declare-styleable>

    <declare-styleable name="lbTitleView">
        <!-- Defining color of the search affordance -->
        <attr name="searchAffordanceColor" format="reference|color" />
    </declare-styleable>

    <declare-styleable name="lbSearchOrbView">
        <!-- Defining icon of the search affordance -->
        <attr name="searchOrbIcon" format="reference"/>
        <!-- Defining color of the search affordance -->
        <attr name="searchOrbColor" format="reference|color" />
    </declare-styleable>

    <declare-styleable name="LeanbackTheme">

        <!-- left padding of BrowseFragment, RowsFragment, DetailsFragment -->
        <attr name="browsePaddingLeft" format="dimension" />
        <!-- right padding of BrowseFragment, RowsFragment, DetailsFragment -->
        <attr name="browsePaddingRight" format="dimension" />
        <!-- top padding of BrowseFragment -->
        <attr name="browsePaddingTop" format="dimension" />
        <!-- bottom padding of BrowseFragment -->
        <attr name="browsePaddingBottom" format="dimension" />
        <!-- start margin of RowsFragment inside BrowseFragment when HeadersFragment is visible -->
        <attr name="browseRowsMarginStart" format="dimension" />
        <!-- top margin of RowsFragment inside BrowseFragment when BrowseFragment title is visible -->
        <attr name="browseRowsMarginTop" format="dimension" />
        <!-- fading edge length of start of browse row when HeadersFragment is visible -->
        <attr name="browseRowsFadingEdgeLength" format="dimension" />

        <!-- BrowseFragment Title text style -->
        <attr name="browseTitleTextStyle" format="reference" />

        <!-- BrowseFragment Title icon style -->
        <attr name="browseTitleIconStyle" format="reference" />

        <!-- BrowseFragment TitleView style -->
        <attr name="browseTitleViewStyle" format="reference" />

        <!-- vertical grid style inside HeadersFragment -->
        <attr name="headersVerticalGridStyle" format="reference" />
        <!-- header style inside HeadersFragment -->
        <attr name="headerStyle" format="reference" />

        <!-- vertical grid style inside RowsFragment -->
        <attr name="rowsVerticalGridStyle" format="reference" />

        <!-- horizontal grid style inside a row -->
        <attr name="rowHorizontalGridStyle" format="reference" />
        <!-- header style inside a row -->
        <attr name="rowHeaderStyle" format="reference" />

        <!-- hover card title style -->
        <attr name="rowHoverCardTitleStyle" format="reference" />
        <!-- hover card description style -->
        <attr name="rowHoverCardDescriptionStyle" format="reference" />

        <!-- CardView styles -->
        <attr name="baseCardViewStyle" format="reference" />
        <attr name="imageCardViewStyle" format="reference" />

        <!-- for details overviews -->
        <attr name="detailsDescriptionTitleStyle" format="reference" />
        <attr name="detailsDescriptionSubtitleStyle" format="reference" />
        <attr name="detailsDescriptionBodyStyle" format="reference" />
        <attr name="detailsActionButtonStyle" format="reference" />

        <!-- style for a vertical grid of items -->
        <attr name="itemsVerticalGridStyle" format="reference" />

        <!-- Default colors -->
        <attr name="defaultBrandColor" format="reference|color" />
        <attr name="defaultSearchColor" format="reference|color" />

        <!-- Style for searchOrb -->
        <attr name="searchOrbViewStyle" format="reference"/>
    </declare-styleable>


</resources>
