<!DOCTYPE skin>
<skin>
  <manifest>
    <title>Deere</title>
    <author>RJ Ryan, S.Brandt</author>
    <version>2.3.0.01</version>
    <description>A flexible skin with stacked or split waveforms, 4 decks and 8 samplers.</description>
    <language>en</language>
    <license>Creative Commons Attribution, Share-Alike 3.0 Unported</license>
    <attributes>
      <!-- Set skin defaults. -->
      <attribute config_key="[App],num_decks">4</attribute>
      <attribute config_key="[App],num_samplers">16</attribute>
      <attribute config_key="[App],num_preview_decks">1</attribute>
      <attribute persist="true" config_key="[Deere],show_parallel_waveforms">1</attribute>
      <!-- Decks -->
      <attribute persist="true" config_key="[Skin],show_4decks">0</attribute>
      <attribute persist="true" config_key="[Skin],show_8_hotcues">1</attribute>
      <attribute persist="true" config_key="[Skin],show_intro_outro_cues">1</attribute>
      <attribute persist="true" config_key="[Skin],show_coverart">1</attribute>
      <attribute persist="true" config_key="[Skin],show_spinnies">1</attribute>
      <attribute persist="true" config_key="[Skin],show_starrating">1</attribute>
      <attribute persist="true" config_key="[Deere],show_track_info">1</attribute>
      <attribute persist="true" config_key="[Deere],show_bpm_info">1</attribute>
      <attribute persist="true" config_key="[Skin],timing_shift_buttons">0</attribute>
      <!-- Mixer -->
      <attribute persist="true" config_key="[Skin],show_mixer">1</attribute>
      <attribute persist="true" config_key="[Skin],show_faders">1</attribute>
      <attribute persist="true" config_key="[Skin],show_eq_knobs">1</attribute>
      <attribute persist="true" config_key="[Skin],show_eq_kill_buttons">1</attribute>
      <attribute persist="true" config_key="[Skin],show_xfader">1</attribute>
      <attribute persist="true" config_key="[Skin],large_vu">0</attribute>
      <!-- Effects -->
      <attribute persist="true" config_key="[Skin],show_effectrack">1</attribute>
      <attribute persist="true" config_key="[Skin],show_4effectunits">0</attribute>
      <attribute persist="true" config_key="[Skin],show_superknobs">0</attribute>
      <!-- Samplers -->
      <attribute persist="true" config_key="[Skin],show_samplers">1</attribute>
      <!-- item index in skin_settings_sampler_rows.xml, '1' enables 2 sampler rows -->
      <attribute persist="true" config_key="[Skin],sampler_rows">1</attribute>
      <attribute persist="true" config_key="[Skin],sampler_row_1_expanded">0</attribute>
      <attribute persist="true" config_key="[Skin],sampler_row_2_expanded">0</attribute>
      <attribute persist="true" config_key="[Skin],sampler_row_3_expanded">0</attribute>
      <attribute persist="true" config_key="[Skin],sampler_row_4_expanded">0</attribute>
      <attribute persist="true" config_key="[Skin],sampler_row_5_expanded">0</attribute>
      <attribute persist="true" config_key="[Skin],sampler_row_6_expanded">0</attribute>
      <attribute persist="true" config_key="[Skin],sampler_row_7_expanded">0</attribute>
      <attribute persist="true" config_key="[Skin],sampler_row_8_expanded">0</attribute>

      <attribute persist="true" config_key="[Skin],show_microphones">0</attribute>

      <!-- Library -->
      <attribute config_key="[Skin],show_library">1</attribute>
      <attribute config_key="[Skin],show_maximized_library">0</attribute>
      <attribute persist="true" config_key="[Skin],show_preview_decks">0</attribute>
      <attribute persist="true" config_key="[Skin],show_library_coverart">1</attribute>
      <!--Disable hidden effect routing Buttons-->
      <attribute persist="false" config_key="[EffectRack1_EffectUnit1],group_[MasterOutput]_enable">0</attribute>
      <attribute persist="false" config_key="[EffectRack1_EffectUnit1],group_[BusLeft]_enable">0</attribute>
      <attribute persist="false" config_key="[EffectRack1_EffectUnit1],group_[BusCenter]_enable">0</attribute>
      <attribute persist="false" config_key="[EffectRack1_EffectUnit1],group_[BusRight]_enable">0</attribute>
      <attribute persist="false" config_key="[EffectRack1_EffectUnit1],group_[BusTalkover]_enable">0</attribute>
      <attribute persist="false" config_key="[EffectRack1_EffectUnit2],group_[MasterOutput]_enable">0</attribute>
      <attribute persist="false" config_key="[EffectRack1_EffectUnit2],group_[BusLeft]_enable">0</attribute>
      <attribute persist="false" config_key="[EffectRack1_EffectUnit2],group_[BusCenter]_enable">0</attribute>
      <attribute persist="false" config_key="[EffectRack1_EffectUnit2],group_[BusRight]_enable">0</attribute>
      <attribute persist="false" config_key="[EffectRack1_EffectUnit2],group_[BusTalkover]_enable">0</attribute>
      <attribute persist="false" config_key="[EffectRack1_EffectUnit3],group_[MasterOutput]_enable">0</attribute>
      <attribute persist="false" config_key="[EffectRack1_EffectUnit3],group_[BusLeft]_enable">0</attribute>
      <attribute persist="false" config_key="[EffectRack1_EffectUnit3],group_[BusCenter]_enable">0</attribute>
      <attribute persist="false" config_key="[EffectRack1_EffectUnit3],group_[BusRight]_enable">0</attribute>
      <attribute persist="false" config_key="[EffectRack1_EffectUnit3],group_[BusTalkover]_enable">0</attribute>
      <attribute persist="false" config_key="[EffectRack1_EffectUnit4],group_[MasterOutput]_enable">0</attribute>
      <attribute persist="false" config_key="[EffectRack1_EffectUnit4],group_[BusLeft]_enable">0</attribute>
      <attribute persist="false" config_key="[EffectRack1_EffectUnit4],group_[BusCenter]_enable">0</attribute>
      <attribute persist="false" config_key="[EffectRack1_EffectUnit4],group_[BusRight]_enable">0</attribute>
      <attribute persist="false" config_key="[EffectRack1_EffectUnit4],group_[BusTalkover]_enable">0</attribute>
    </attributes>
  </manifest>

  <ObjectName>Mixxx</ObjectName>
  <Style src="skins:Deere/style.qss"
         src-mac="skins:Deere/style-mac.qss"
         src-linux="skins:default-menu-styles-linux.qss"
         src-windows="skins:default-menu-styles-windows.qss"/>
  <Size>1008me,550me</Size>
  <Layout>horizontal</Layout>

  <Children>
    <SetVariable name="SmallSquareButtonMinimumSize">15,15</SetVariable>
    <SetVariable name="SmallSquareButtonMaximumSize">15,15</SetVariable>
    <SetVariable name="SmallSquareButtonSizePolicy">f,f</SetVariable>

    <SetVariable name="SmallWideButtonMinimumSize">50,18</SetVariable>
    <SetVariable name="SmallWideButtonMaximumSize">50,22</SetVariable>
    <SetVariable name="SmallWideButtonSizePolicy">f,f</SetVariable>

    <SetVariable name="MinimalControlsButtonMinimumSize">34,22</SetVariable>
    <SetVariable name="MinimalControlsButtonMaximumSize">34,22</SetVariable>
    <SetVariable name="MinimalControlsButtonSizePolicy">f,f</SetVariable>

    <SetVariable name="SmallHorizontalStretchButtonMinimumSize">-1,15</SetVariable>
    <SetVariable name="SmallHorizontalStretchButtonMaximumSize">-1,15</SetVariable>
    <SetVariable name="SmallHorizontalStretchButtonSizePolicy">me,f</SetVariable>

    <SetVariable name="SmallVerticalStretchButtonMinimumSize">15,-1</SetVariable>
    <SetVariable name="SmallVerticalStretchButtonMaximumSize">15,-1</SetVariable>
    <SetVariable name="SmallVerticalStretchButtonSizePolicy">f,me</SetVariable>

    <SetVariable name="SmallHorizontalStretchLinkButtonMinimumSize">-1,4</SetVariable>
    <SetVariable name="SmallHorizontalStretchLinkButtonMaximumSize">-1,4</SetVariable>
    <SetVariable name="SmallHorizontalStretchLinkButtonSizePolicy">me,f</SetVariable>

    <SetVariable name="SquareButtonMinimumSize">22,22</SetVariable>
    <SetVariable name="SquareButtonMaximumSize">22,22</SetVariable>
    <SetVariable name="SquareButtonSizePolicy">f,f</SetVariable>

    <SetVariable name="FXAssignmentButtonMinimumSize">26,22</SetVariable>
    <SetVariable name="FXAssignmentButtonMaximumSize">26,22</SetVariable>
    <SetVariable name="FXAssignmentButtonSizePolicy">f,f</SetVariable>

    <SetVariable name="WideButtonMinimumSize">40,22</SetVariable>
    <SetVariable name="WideButtonMaximumSize">40,22</SetVariable>
    <SetVariable name="WideButtonSizePolicy">f,f</SetVariable>

    <SetVariable name="ToolbarButtonMinimumSize">75,22</SetVariable>
    <SetVariable name="ToolbarButtonMaximumSize">75,22</SetVariable>
    <SetVariable name="ToolbarButtonSizePolicy">f,f</SetVariable>

    <SetVariable name="HorizontalStretchButtonMinimumSize">-1,22</SetVariable>
    <SetVariable name="HorizontalStretchButtonMaximumSize">-1,22</SetVariable>
    <SetVariable name="HorizontalStretchButtonSizePolicy">me,f</SetVariable>

    <SetVariable name="VerticalStretchButtonMinimumSize">22,-1</SetVariable>
    <SetVariable name="VerticalStretchButtonMaximumSize">22,-1</SetVariable>
    <SetVariable name="VerticalStretchButtonSizePolicy">f,me</SetVariable>

    <!-- The waveforms (zoomed and overview) use a lot of memory. They appear in multiple places in
    main_decks.xml, left_deck.xml, and right_deck.xml, so define them in singletons. This makes
    toggling between 2/4 decks and stacked/split waveforms slower, but it makes Mixxx startup
    and shutdown much faster and saves a lot of memory.-->
    <Template src="skins:Deere/deck_singletons.xml">
      <SetVariable name="i">1</SetVariable>
      <!-- Traditional Blue -->
      <SetVariable name="DeckSignalColor">#007BCD</SetVariable>
      <SetVariable name="DeckBackgroundColor">#333333</SetVariable>
      <SetVariable name="PlayedOverlayColor">#b8000000</SetVariable>
    </Template>

    <Template src="skins:Deere/deck_singletons.xml">
      <SetVariable name="i">2</SetVariable>
      <!-- Traditional Orange -->
      <SetVariable name="DeckSignalColor">#E67A00</SetVariable>
      <SetVariable name="DeckBackgroundColor">#333333</SetVariable>
      <SetVariable name="PlayedOverlayColor">#b8000000</SetVariable>
    </Template>

    <Template src="skins:Deere/deck_singletons.xml">
      <SetVariable name="i">3</SetVariable>
      <!-- Violet -->
      <SetVariable name="DeckSignalColor">#B500B5</SetVariable>
      <SetVariable name="DeckBackgroundColor">#35335a</SetVariable>
      <SetVariable name="PlayedOverlayColor">#b8000000</SetVariable>
    </Template>

    <Template src="skins:Deere/deck_singletons.xml">
      <SetVariable name="i">4</SetVariable>
      <!-- Lime -->
      <SetVariable name="DeckSignalColor">#AABD00</SetVariable>
      <SetVariable name="DeckBackgroundColor">#35335a</SetVariable>
      <SetVariable name="PlayedOverlayColor">#b8000000</SetVariable>
    </Template>

    <SingletonDefinition>
      <ObjectName>Library</ObjectName>
      <Children>
        <Template src="skins:Deere/library.xml"/>
      </Children>
    </SingletonDefinition>

    <SingletonDefinition>
      <ObjectName>SamplerSettingsSingleton</ObjectName>
      <Children>
        <Template src="skins:Deere/skinsettings_sampler_buttons.xml"/>
      </Children>
    </SingletonDefinition>

    <WidgetGroup>
      <ObjectName>SkinContainer</ObjectName>
      <SizePolicy>me,me</SizePolicy>
      <Layout>vertical</Layout>
      <Children>
        <Template src="skins:Deere/tool_bar.xml"/>

        <!-- regular or maximized library -->
        <WidgetStack currentpage="[Skin],show_maximized_library">
          <Children>

            <!-- regular library with decks etc. -->
            <Splitter>
              <ObjectName>WaveformSplitter</ObjectName>
              <Orientation>vertical</Orientation>
              <SplitSizesConfigKey>[Skin],stackedWaveforms_splitSize</SplitSizesConfigKey>
              <SplitSizes>90,540</SplitSizes>
              <Size>-1me,-1me</Size>
              <Children>

                <!-- Waveforms & spinnies are shown here as stack or
                  separately in each deck -->
                <Template src="skins:Deere/parallel_waveforms.xml"/>

                <WidgetGroup>
                  <Layout>vertical</Layout>
                  <SizePolicy>me,me</SizePolicy>
                  <Children>
                    <WidgetGroup><!-- Main section -->
                      <Layout>vertical</Layout>
                      <SizePolicy>min,max</SizePolicy>
                      <Children>
                        <Template src="skins:Deere/main_decks.xml"/>
                        <Template src="skins:Deere/effect_rack.xml"/>
                        <Template src="skins:Deere/sample_decks.xml"/>
                        <Template src="skins:Deere/microphone_rack.xml"/>
                      </Children>
                    </WidgetGroup><!-- /Main section -->
                    <SingletonContainer>
                      <ObjectName>Library</ObjectName>
                    </SingletonContainer>
                  </Children>
                </WidgetGroup>

              </Children>
            </Splitter><!-- regular library with decks etc. -->

            <!-- maximized Library with minimal decks -->
            <WidgetGroup trigger="[Skin],show_maximized_library" on_hide_select="0">
              <Layout>vertical</Layout>
              <SizePolicy>me,me</SizePolicy>
              <Children>
                <Template src="skins:Deere/decks_small.xml"/>
                <SingletonContainer>
                  <ObjectName>Library</ObjectName>
                </SingletonContainer>
              </Children>
            </WidgetGroup><!-- maximized Library with minimal decks -->

          </Children>
        </WidgetStack>

      </Children>
    </WidgetGroup>

    <WidgetGroup>
      <Layout>vertical</Layout>
      <SizePolicy>min,me</SizePolicy>
      <Connection>
        <ConfigKey>[Skin],show_settings</ConfigKey>
        <BindProperty>visible</BindProperty>
      </Connection>
      <Children>
        <Template src="skins:Deere/skin_settings.xml"/>
      </Children>
    </WidgetGroup>
  </Children>
</skin>
