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

    <!-- Styles in here can be extended for customisation in your application. Each utilises
         one of the.styles. If Holo themes are available on the current platform version
         they will be used instead of the compat styles. -->

    <style name="Widget.AppCompat.ActionBar" parent="Base.Widget.AppCompat.ActionBar">
    </style>

    <style name="Widget.AppCompat.Light.ActionBar" parent="Base.Widget.AppCompat.Light.ActionBar">
    </style>

    <style name="Widget.AppCompat.ActionBar.Solid"
           parent="Base.Widget.AppCompat.ActionBar.Solid">
    </style>

    <style name="Widget.AppCompat.Light.ActionBar.Solid"
           parent="Base.Widget.AppCompat.Light.ActionBar.Solid">
    </style>

    <style name="TextAppearance.AppCompat.Widget.ActionBar.Title"
           parent="Base.TextAppearance.AppCompat.Widget.ActionBar.Title">
    </style>

    <style name="TextAppearance.AppCompat.Widget.ActionBar.Subtitle"
           parent="Base.TextAppearance.AppCompat.Widget.ActionBar.Subtitle">
    </style>

    <style name="TextAppearance.AppCompat.Widget.ActionBar.Title.Inverse"
           parent="Base.TextAppearance.AppCompat.Widget.ActionBar.Title.Inverse">
    </style>

    <style name="TextAppearance.AppCompat.Widget.ActionBar.Subtitle.Inverse"
           parent="Base.TextAppearance.AppCompat.Widget.ActionBar.Subtitle.Inverse">
    </style>

    <style name="Widget.AppCompat.ProgressBar.Horizontal"
           parent="Base.Widget.AppCompat.ProgressBar.Horizontal">
    </style>

    <style name="Widget.AppCompat.ProgressBar"
           parent="Base.Widget.AppCompat.ProgressBar">
    </style>

    <style name="Widget.AppCompat.ActionButton" parent="Base.Widget.AppCompat.ActionButton" />

    <!-- This style has an extra indirection to properly set RTL attributes. See styles_rtl.xml -->
    <style name="Widget.AppCompat.ActionButton.CloseMode" parent="RtlOverlay.Widget.AppCompat.ActionButton.CloseMode" />

    <style name="Widget.AppCompat.ActionButton.Overflow"
           parent="RtlOverlay.Widget.AppCompat.ActionButton.Overflow" />

    <style name="Widget.AppCompat.ActionBar.TabBar"
           parent="Base.Widget.AppCompat.ActionBar.TabBar">
    </style>

    <style name="Widget.AppCompat.Light.ActionBar.TabBar"
           parent="Base.Widget.AppCompat.Light.ActionBar.TabBar">
    </style>

    <style name="Widget.AppCompat.ActionBar.TabView"
           parent="Base.Widget.AppCompat.ActionBar.TabView">
    </style>

    <style name="Widget.AppCompat.Light.ActionBar.TabView"
           parent="Base.Widget.AppCompat.Light.ActionBar.TabView">
    </style>

    <style name="Widget.AppCompat.ActionBar.TabText"
           parent="Base.Widget.AppCompat.ActionBar.TabText">
    </style>

    <style name="Widget.AppCompat.DrawerArrowToggle"
           parent="Base.Widget.AppCompat.DrawerArrowToggle">
        <item name="color">?attr/colorControlNormal</item>
    </style>

    <style name="Widget.AppCompat.Light.ActionBar.TabText"
           parent="Base.Widget.AppCompat.Light.ActionBar.TabText">
    </style>

    <style name="Widget.AppCompat.Light.ActionBar.TabText.Inverse"
           parent="Base.Widget.AppCompat.Light.ActionBar.TabText.Inverse">
    </style>

    <style name="TextAppearance.AppCompat.Widget.ActionBar.Menu"
           parent="Base.TextAppearance.AppCompat.Widget.ActionBar.Menu">
    </style>

    <style name="Widget.AppCompat.ActionMode" parent="Base.Widget.AppCompat.ActionMode">
    </style>

    <style name="TextAppearance.AppCompat.Widget.ActionMode.Title"
           parent="Base.TextAppearance.AppCompat.Widget.ActionMode.Title">
    </style>

    <style name="TextAppearance.AppCompat.Widget.ActionMode.Subtitle"
           parent="Base.TextAppearance.AppCompat.Widget.ActionMode.Subtitle">
    </style>

    <style name="TextAppearance.AppCompat.Widget.DropDownItem"
           parent="Base.TextAppearance.AppCompat.Widget.DropDownItem">
    </style>

    <style name="Widget.AppCompat.Spinner" parent="Base.Widget.AppCompat.Spinner" />

    <style name="Widget.AppCompat.Spinner.DropDown" />

    <style name="Widget.AppCompat.Spinner.DropDown.ActionBar" parent="Base.Widget.AppCompat.Spinner.DropDown.ActionBar" />

    <!-- This style has an extra indirection to properly set RTL attributes. See styles_rtl.xml -->
    <style name="Widget.AppCompat.DropDownItem.Spinner" parent="RtlOverlay.Widget.AppCompat.Search.DropDown.Text" />

    <style name="Widget.AppCompat.ListView.DropDown"
           parent="Base.Widget.AppCompat.ListView.DropDown">
    </style>

    <style name="TextAppearance.Widget.AppCompat.ExpandedMenu.Item"
           parent="Base.TextAppearance.Widget.AppCompat.ExpandedMenu.Item">
    </style>

    <style name="Widget.AppCompat.ListPopupWindow" parent="Base.Widget.AppCompat.ListPopupWindow">
    </style>

    <style name="Widget.AppCompat.PopupMenu.Overflow"
           parent="Base.Widget.AppCompat.PopupMenu.Overflow">
    </style>

    <style name="Widget.AppCompat.Light.PopupMenu.Overflow"
           parent="Base.Widget.AppCompat.Light.PopupMenu.Overflow">
    </style>

    <style name="Widget.AppCompat.PopupMenu" parent="Base.Widget.AppCompat.PopupMenu">
    </style>

    <style name="Widget.AppCompat.Light.PopupMenu"
           parent="Base.Widget.AppCompat.Light.PopupMenu">
    </style>

    <style name="Widget.AppCompat.ListView.Menu" parent="Base.Widget.AppCompat.ListView.Menu">
    </style>

    <style name="Widget.AppCompat.PopupWindow" parent="Base.Widget.AppCompat.PopupWindow">
    </style>

    <style name="TextAppearance.AppCompat.Widget.PopupMenu.Large"
           parent="Base.TextAppearance.AppCompat.Widget.PopupMenu.Large">
    </style>

    <style name="TextAppearance.AppCompat.Widget.PopupMenu.Small"
           parent="Base.TextAppearance.AppCompat.Widget.PopupMenu.Small">
    </style>

    <style name="TextAppearance.AppCompat.Light.Widget.PopupMenu.Large"
           parent="Base.TextAppearance.AppCompat.Light.Widget.PopupMenu.Large">
    </style>

    <style name="TextAppearance.AppCompat.Light.Widget.PopupMenu.Small"
           parent="Base.TextAppearance.AppCompat.Light.Widget.PopupMenu.Small">
    </style>

    <style name="TextAppearance.AppCompat.SearchResult.Title"
           parent="Base.TextAppearance.AppCompat.SearchResult.Title">
    </style>

    <style name="TextAppearance.AppCompat.SearchResult.Subtitle"
           parent="Base.TextAppearance.AppCompat.SearchResult.Subtitle">
    </style>

    <style name="Widget.AppCompat.AutoCompleteTextView"
           parent="Base.Widget.AppCompat.AutoCompleteTextView">
    </style>

    <style name="Widget.AppCompat.Light.AutoCompleteTextView"
           parent="Base.Widget.AppCompat.Light.AutoCompleteTextView">
    </style>

    <style name="Widget.AppCompat.ActivityChooserView"
           parent="Base.Widget.AppCompat.ActivityChooserView">
    </style>

    <style name="Widget.AppCompat.Light.ActivityChooserView"
           parent="Base.Widget.AppCompat.Light.ActivityChooserView">
    </style>

    <style name="Widget.AppCompat.SearchView" parent="Base.Widget.AppCompat.SearchView" />

    <style name="Widget.AppCompat.EditText"
           parent="Base.Widget.AppCompat.EditText">
    </style>

    <style name="Widget.AppCompat.CompoundButton.Switch" parent="Base.Widget.AppCompat.CompoundButton.Switch" />

    <!-- Toolbar -->

    <style name="Widget.AppCompat.Toolbar" parent="Base.Widget.AppCompat.Toolbar" />

    <style name="Widget.AppCompat.Toolbar.Button.Navigation"
           parent="Base.Widget.AppCompat.Toolbar.Button.Navigation" />

    <style name="TextAppearance.Widget.AppCompat.Toolbar.Title"
           parent="Base.TextAppearance.Widget.AppCompat.Toolbar.Title">
    </style>

    <style name="TextAppearance.Widget.AppCompat.Toolbar.Subtitle"
           parent="Base.TextAppearance.Widget.AppCompat.Toolbar.Subtitle">
    </style>


    <eat-comment />
    <!-- Text styles -->

    <style name="TextAppearance.AppCompat" parent="Base.TextAppearance.AppCompat" />

    <style name="TextAppearance.AppCompat.Display4" parent="Base.TextAppearance.AppCompat.Display4" />

    <style name="TextAppearance.AppCompat.Display3" parent="Base.TextAppearance.AppCompat.Display3" />

    <style name="TextAppearance.AppCompat.Display2" parent="Base.TextAppearance.AppCompat.Display2" />

    <style name="TextAppearance.AppCompat.Display1" parent="Base.TextAppearance.AppCompat.Display1" />

    <style name="TextAppearance.AppCompat.Headline" parent="Base.TextAppearance.AppCompat.Headline" />

    <style name="TextAppearance.AppCompat.Title" parent="Base.TextAppearance.AppCompat.Title" />

    <style name="TextAppearance.AppCompat.Title.Inverse" parent="Base.TextAppearance.AppCompat.Title.Inverse" />

    <style name="TextAppearance.AppCompat.Subhead" parent="Base.TextAppearance.AppCompat.Subhead" />

    <style name="TextAppearance.AppCompat.Subhead.Inverse" parent="Base.TextAppearance.AppCompat.Subhead.Inverse" />

    <style name="TextAppearance.AppCompat.Body2" parent="Base.TextAppearance.AppCompat.Body2" />

    <style name="TextAppearance.AppCompat.Body1" parent="Base.TextAppearance.AppCompat.Body1" />

    <style name="TextAppearance.AppCompat.Caption" parent="Base.TextAppearance.AppCompat.Caption" />

    <style name="TextAppearance.AppCompat.Menu" parent="Base.TextAppearance.AppCompat.Menu" />

    <style name="TextAppearance.AppCompat.Inverse" parent="Base.TextAppearance.AppCompat.Inverse" />

    <style name="TextAppearance.AppCompat.Large" parent="Base.TextAppearance.AppCompat.Large" />

    <style name="TextAppearance.AppCompat.Large.Inverse" parent="Base.TextAppearance.AppCompat.Large.Inverse" />

    <style name="TextAppearance.AppCompat.Medium" parent="Base.TextAppearance.AppCompat.Medium" />

    <style name="TextAppearance.AppCompat.Medium.Inverse" parent="Base.TextAppearance.AppCompat.Medium.Inverse" />

    <style name="TextAppearance.AppCompat.Small" parent="Base.TextAppearance.AppCompat.Small" />

    <style name="TextAppearance.AppCompat.Small.Inverse" parent="Base.TextAppearance.AppCompat.Small.Inverse" />

    <style name="TextAppearance.AppCompat.Button" parent="Base.TextAppearance.AppCompat.Button" />

    <style name="TextAppearance.AppCompat.Widget.Switch" parent="Base.TextAppearance.AppCompat.Widget.Switch" />

    <!--
         The following themes are deprecated.
    -->
    <style name="Widget.AppCompat.Light.ActionBar.Solid.Inverse" />
    <style name="Widget.AppCompat.Light.ActionBar.TabBar.Inverse" />
    <style name="Widget.AppCompat.Light.ActionBar.TabView.Inverse" />
    <style name="TextAppearance.AppCompat.Light.SearchResult.Title" parent="TextAppearance.AppCompat.SearchResult.Title" />
    <style name="TextAppearance.AppCompat.Light.SearchResult.Subtitle" parent="TextAppearance.AppCompat.SearchResult.Subtitle" />
    <style name="Widget.AppCompat.Light.ActionMode.Inverse" parent="Widget.AppCompat.ActionMode" />
    <style name="TextAppearance.AppCompat.Widget.ActionMode.Title.Inverse" parent="TextAppearance.AppCompat.Widget.ActionMode.Title" />
    <style name="TextAppearance.AppCompat.Widget.ActionMode.Subtitle.Inverse" parent="TextAppearance.AppCompat.Widget.ActionMode.Subtitle" />
    <style name="Widget.AppCompat.Light.DropDownItem.Spinner" parent="Widget.AppCompat.DropDownItem.Spinner" />
    <style name="Widget.AppCompat.Light.SearchView" parent="Widget.AppCompat.SearchView" />
    <style name="Widget.AppCompat.Light.ActionButton" parent="Widget.AppCompat.ActionButton" />
    <style name="Widget.AppCompat.Light.ActionButton.Overflow" parent="Widget.AppCompat.ActionButton.Overflow" />
    <style name="Widget.AppCompat.Light.ActionButton.CloseMode" parent="Widget.AppCompat.ActionButton.CloseMode" />
    <style name="Widget.AppCompat.Light.Spinner.DropDown.ActionBar" parent="Widget.AppCompat.Spinner.DropDown.ActionBar" />
    <style name="Widget.AppCompat.Light.ListView.DropDown" parent="Widget.AppCompat.ListView.DropDown" />
    <style name="Widget.AppCompat.Light.ListPopupWindow" parent="Widget.AppCompat.ListPopupWindow" />

</resources>
