From 6270c1f8272ca62ae3b47bff1bab546ae03bd157 Mon Sep 17 00:00:00 2001
From: Sophia Hadash <sophiahadash@gmail.com>
Date: Sun, 22 Aug 2021 18:14:45 +0200
Subject: [PATCH] Update the documentation.

---
 THEMES.md | 80 +++++++++++++++++++++++++++++++++++++++++++------------
 1 file changed, 63 insertions(+), 17 deletions(-)

diff --git a/THEMES.md b/THEMES.md
index 7c2b127a3..c42a8f697 100644
--- a/THEMES.md
+++ b/THEMES.md
@@ -52,7 +52,7 @@ Here is a very simple theme that changes the description text's color:
 
 ```xml
 <theme>
-    <formatVersion>6</formatVersion>
+    <formatVersion>7</formatVersion>
     <view name="detailed">
         <text name="description">
             <color>00FF00</color>
@@ -71,11 +71,10 @@ Here is a very simple theme that changes the description text's color:
 
 Everything must be inside a `<theme>` tag.
 
-**The `<formatVersion>` tag *must* be specified**.  This is the version of the theming system the theme was designed for.  The current version is 6.
+**The `<formatVersion>` tag *must* be specified**. This is the version of the theming system the theme was designed for.
+The current version is 7.
 
-
-
-A *view* can be thought of as a particular "screen" within EmulationStation.  Views are defined like this:
+A *view* can be thought of as a particular "screen" within EmulationStation. Views are defined like this:
 
 ```xml
 <view name="ViewNameHere">
@@ -122,8 +121,9 @@ You can include theme files within theme files, similar to `#include` in C (thou
 
 `~/.emulationstation/all_themes.xml`:
 ```xml
+
 <theme>
-    <formatVersion>6</formatVersion>
+    <formatVersion>7</formatVersion>
     <view name="detailed">
         <text name="description">
             <fontPath>./all_themes/myfont.ttf</fontPath>
@@ -135,8 +135,9 @@ You can include theme files within theme files, similar to `#include` in C (thou
 
 `~/.emulationstation/snes/theme.xml`:
 ```xml
+
 <theme>
-    <formatVersion>6</formatVersion>
+    <formatVersion>7</formatVersion>
     <include>./../all_themes.xml</include>
     <view name="detailed">
         <text name="description">
@@ -148,8 +149,9 @@ You can include theme files within theme files, similar to `#include` in C (thou
 
 Is equivalent to this `snes/theme.xml`:
 ```xml
+
 <theme>
-    <formatVersion>6</formatVersion>
+    <formatVersion>7</formatVersion>
     <view name="detailed">
         <text name="description">
             <fontPath>./all_themes/myfont.ttf</fontPath>
@@ -167,8 +169,9 @@ Notice that properties that were not specified got merged (`<fontPath>`) and the
 Sometimes you want to apply the same properties to the same elements across multiple views.  The `name` attribute actually works as a list (delimited by any characters of `\t\r\n ,` - that is, whitespace and commas).  So, for example, to easily apply the same header to the basic, grid, and system views:
 
 ```xml
+
 <theme>
-    <formatVersion>6</formatVersion>
+    <formatVersion>7</formatVersion>
     <view name="basic, grid, system">
         <image name="logo">
             <path>./snes_art/snes_header.png</path>
@@ -184,8 +187,9 @@ Sometimes you want to apply the same properties to the same elements across mult
 
 This is equivalent to:
 ```xml
+
 <theme>
-    <formatVersion>6</formatVersion>
+    <formatVersion>7</formatVersion>
     <view name="basic">
         <image name="logo">
             <path>./snes_art/snes_header.png</path>
@@ -216,8 +220,9 @@ This is equivalent to:
 You can theme multiple elements *of the same type* simultaneously.  The `name` attribute actually works as a list (delimited by any characters of `\t\r\n ,` - that is, whitespace and commas), just like it does for views, as long as the elements have the same type.  This is useful if you want to, say, apply the same color to all the metadata labels:
 
 ```xml
+
 <theme>
-    <formatVersion>6</formatVersion>
+    <formatVersion>7</formatVersion>
     <view name="detailed">
         <!-- Weird spaces/newline on purpose! -->
         <text name="md_lbl_rating, md_lbl_releasedate, md_lbl_developer, md_lbl_publisher,
@@ -230,8 +235,9 @@ You can theme multiple elements *of the same type* simultaneously.  The `name` a
 
 Which is equivalent to:
 ```xml
+
 <theme>
-    <formatVersion>6</formatVersion>
+    <formatVersion>7</formatVersion>
     <view name="detailed">
         <text name="md_lbl_rating">
             <color>48474D</color>
@@ -288,8 +294,9 @@ Jul 12 11:28:58 Debug:  Sound::getFromTheme(): Tag not found, using fallback sou
 Example `navigationsounds.xml`, to be included from the main theme file:
 
 ```xml
+
 <theme>
-    <formatVersion>6</formatVersion>
+    <formatVersion>7</formatVersion>
     <feature supported="navigationsounds">
         <view name="all">
             <sound name="systembrowse">
@@ -849,13 +856,52 @@ EmulationStation borrows the concept of "nine patches" from Android (or "9-Slice
 
 #### helpsystem
 
-* `pos` - type: NORMALIZED_PAIR.  Default is "0.012 0.9515"
+* `pos` - type: NORMALIZED_PAIR. Default is "0.012 0.9515"
 * `origin` - type: NORMALIZED_PAIR.
-    - Where on the component `pos` refers to. For example, an origin of `0.5 0.5` and a `pos` of `0.5 0.5` would place the component exactly in the middle of the screen.
-* `textColor` - type: COLOR.  Default is 777777FF.
-* `iconColor` - type: COLOR.  Default is 777777FF.
+    - Where on the component `pos` refers to. For example, an origin of `0.5 0.5` and a `pos` of `0.5 0.5` would place
+      the component exactly in the middle of the screen.
+* `textColor` - type: COLOR. Default is 777777FF.
+* `textColorDimmed` - type: COLOR. Default is 777777FF.
+* `iconColor` - type: COLOR. Default is 777777FF.
+* `iconColorDimmed` - type: COLOR. Default is 777777FF.
 * `fontPath` - type: PATH.
 * `fontSize` - type: FLOAT.
+* `entrySpacing` - type: FLOAT. Default is 16.0f.
+    - Spacing in pixels between the help system components.
+* `iconTextSpacing` - type: FLOAT. Default is 8.0f.
+    - Spacing in pixels within a help system component between it's icon and text.
+* `textStyle` - type: STRING. Default is `uppercase`.
+    - The style of the text. Options: `uppercase`, `lowercase`, `camelcase`.
+* `dpad_updown` - type: PATH.
+* `dpad_leftright` - type: PATH.
+* `dpad_all` - type: PATH.
+* `thumbstick_click` - type: PATH.
+* `button_l` - type: PATH.
+* `button_r` - type: PATH.
+* `button_lr` - type: PATH.
+* `button_a_SNES` - type: PATH.
+* `button_b_SNES` - type: PATH.
+* `button_x_SNEs` - type: PATH.
+* `button_y_SNES` - type: PATH.
+* `button_back_SNES` - type: PATH.
+* `button_start_SNES` - type: PATH.
+* `button_a_PS` - type: PATH.
+* `button_b_PS` - type: PATH.
+* `button_x_PS` - type: PATH.
+* `button_y_PS` - type: PATH.
+* `button_back_PS4` - type: PATH.
+* `button_start_PS4` - type: PATH.
+* `button_back_PS5` - type: PATH.
+* `button_start_PS5` - type: PATH.
+* `button_a_XBOX` - type: PATH.
+* `button_b_XBOX` - type: PATH.
+* `button_x_XBOX` - type: PATH.
+* `button_y_XBOX` - type: PATH.
+* `button_back_XBOX` - type: PATH.
+* `button_start_XBOX` - type: PATH.
+* `button_back_XBOX360` - type: PATH.
+* `button_start_XBOX360` - type: PATH.
+    - All options starting with `button_`: Path to custom button icon.
 
 #### carousel