From 2fd9ba56dad9bd884598d1ae435d7cc54d981785 Mon Sep 17 00:00:00 2001
From: Scott Lahteine <github@thinkyhead.com>
Date: Sat, 2 Jun 2018 20:53:25 -0500
Subject: [PATCH] LED menu item bool (like Case Lights)

---
 Marlin/src/lcd/language/language_cz.h    | 3 +--
 Marlin/src/lcd/language/language_de.h    | 3 +--
 Marlin/src/lcd/language/language_en.h    | 7 ++-----
 Marlin/src/lcd/language/language_eu.h    | 3 +--
 Marlin/src/lcd/language/language_fr.h    | 3 +--
 Marlin/src/lcd/language/language_it.h    | 3 +--
 Marlin/src/lcd/language/language_pt-br.h | 3 +--
 Marlin/src/lcd/language/language_ru.h    | 3 +--
 Marlin/src/lcd/language/language_sk.h    | 3 +--
 Marlin/src/lcd/language/language_zh_CN.h | 3 +--
 Marlin/src/lcd/language/language_zh_TW.h | 3 +--
 Marlin/src/lcd/ultralcd.cpp              | 6 ++----
 12 files changed, 14 insertions(+), 29 deletions(-)

diff --git a/Marlin/src/lcd/language/language_cz.h b/Marlin/src/lcd/language/language_cz.h
index 37db1bc141..bb79f68181 100644
--- a/Marlin/src/lcd/language/language_cz.h
+++ b/Marlin/src/lcd/language/language_cz.h
@@ -148,8 +148,7 @@
 #define MSG_UBL_STEP_BY_STEP_MENU           _UxGT("UBL Postupně")
 
 #define MSG_LED_CONTROL                     _UxGT("LED Nastavení")
-#define MSG_LEDS_ON                         _UxGT("Světla Zap")
-#define MSG_LEDS_OFF                        _UxGT("Světla Vyp")
+#define MSG_LEDS                            _UxGT("Světla")
 #define MSG_LED_PRESETS                     _UxGT("Světla Předvolby")
 #define MSG_SET_LEDS_RED                    _UxGT("Červená")
 #define MSG_SET_LEDS_ORANGE                 _UxGT("Oranžová")
diff --git a/Marlin/src/lcd/language/language_de.h b/Marlin/src/lcd/language/language_de.h
index 19e02ac9dc..67b79d7b57 100644
--- a/Marlin/src/lcd/language/language_de.h
+++ b/Marlin/src/lcd/language/language_de.h
@@ -309,8 +309,7 @@
 #define MSG_UBL_STEP_BY_STEP_MENU         _UxGT("Schrittweises UBL")
 
 #define MSG_LED_CONTROL                     _UxGT("LED Kontrolle")
-#define MSG_LEDS_ON                         _UxGT("Licht an")
-#define MSG_LEDS_OFF                        _UxGT("Licht aus")
+#define MSG_LEDS                            _UxGT("Licht")
 #define MSG_LED_PRESETS                     _UxGT("Licht Einstellungen")
 #define MSG_SET_LEDS_RED                    _UxGT("Rot")
 #define MSG_SET_LEDS_ORANGE                 _UxGT("Orange")
diff --git a/Marlin/src/lcd/language/language_en.h b/Marlin/src/lcd/language/language_en.h
index 50fef84cae..92bb6f0fb9 100644
--- a/Marlin/src/lcd/language/language_en.h
+++ b/Marlin/src/lcd/language/language_en.h
@@ -371,11 +371,8 @@
 #ifndef MSG_LED_CONTROL
   #define MSG_LED_CONTROL                     _UxGT("LED Control")
 #endif
-#ifndef MSG_LEDS_ON
-  #define MSG_LEDS_ON                         _UxGT("Lights On")
-#endif
-#ifndef MSG_LEDS_OFF
-  #define MSG_LEDS_OFF                        _UxGT("Lights Off")
+#ifndef MSG_LEDS   
+  #define MSG_LEDS                            _UxGT("Lights")
 #endif
 #ifndef MSG_LED_PRESETS
   #define MSG_LED_PRESETS                     _UxGT("Light Presets")
diff --git a/Marlin/src/lcd/language/language_eu.h b/Marlin/src/lcd/language/language_eu.h
index d6e51bc250..c28eaa6f94 100644
--- a/Marlin/src/lcd/language/language_eu.h
+++ b/Marlin/src/lcd/language/language_eu.h
@@ -142,8 +142,7 @@
 //#define MSG_UBL_Z_OFFSET_STOPPED          _UxGT("Z-Offset Stopped")
 //#define MSG_UBL_STEP_BY_STEP_MENU         _UxGT("Step-By-Step UBL")
 #define MSG_LED_CONTROL                     _UxGT("LED ezarpenak")
-#define MSG_LEDS_ON                         _UxGT("Argiak piztu")
-#define MSG_LEDS_OFF                        _UxGT("Argiak itzali")
+#define MSG_LEDS                            _UxGT("Argiak")
 #define MSG_LED_PRESETS                     _UxGT("Argi aurrehautaketak")
 #define MSG_SET_LEDS_RED                    _UxGT("Gorria")
 #define MSG_SET_LEDS_ORANGE                 _UxGT("Laranja")
diff --git a/Marlin/src/lcd/language/language_fr.h b/Marlin/src/lcd/language/language_fr.h
index e498e29efb..9b05a05e82 100644
--- a/Marlin/src/lcd/language/language_fr.h
+++ b/Marlin/src/lcd/language/language_fr.h
@@ -144,8 +144,7 @@
 #define MSG_UBL_STEP_BY_STEP_MENU           _UxGT("UBL Pas à pas")
 
 #define MSG_LED_CONTROL                     _UxGT("Contrôle LED")
-#define MSG_LEDS_ON                         _UxGT("Lumière ON")
-#define MSG_LEDS_OFF                        _UxGT("Lumière OFF")
+#define MSG_LEDS                            _UxGT("Lumière")
 #define MSG_LED_PRESETS                     _UxGT("Préregl. LED")
 #define MSG_SET_LEDS_RED                    _UxGT("Rouge")
 #define MSG_SET_LEDS_ORANGE                 _UxGT("Orange")
diff --git a/Marlin/src/lcd/language/language_it.h b/Marlin/src/lcd/language/language_it.h
index dab1dbae29..cc18859085 100644
--- a/Marlin/src/lcd/language/language_it.h
+++ b/Marlin/src/lcd/language/language_it.h
@@ -143,8 +143,7 @@
 #define MSG_UBL_STEP_BY_STEP_MENU           _UxGT("UBL passo passo")
 
 #define MSG_LED_CONTROL                     _UxGT("Controllo LED")
-#define MSG_LEDS_ON                         _UxGT("Luci On")
-#define MSG_LEDS_OFF                        _UxGT("Luci Off")
+#define MSG_LEDS                            _UxGT("Luci")
 #define MSG_LED_PRESETS                     _UxGT("Preset luci")
 #define MSG_SET_LEDS_RED                    _UxGT("Rosso")
 #define MSG_SET_LEDS_ORANGE                 _UxGT("Arancione")
diff --git a/Marlin/src/lcd/language/language_pt-br.h b/Marlin/src/lcd/language/language_pt-br.h
index acea368903..467153156b 100644
--- a/Marlin/src/lcd/language/language_pt-br.h
+++ b/Marlin/src/lcd/language/language_pt-br.h
@@ -148,8 +148,7 @@
 #define MSG_UBL_Z_OFFSET_STOPPED            _UxGT("Compensação Z parou")
 #define MSG_UBL_STEP_BY_STEP_MENU           _UxGT("UBL passo a passo")
 #define MSG_LED_CONTROL                     _UxGT("Controle do LED")
-#define MSG_LEDS_ON                         _UxGT("Luz Acesa")
-#define MSG_LEDS_OFF                        _UxGT("Luz Apagada")
+#define MSG_LEDS                            _UxGT("Luz")
 #define MSG_LED_PRESETS                     _UxGT("Configuração da Luz")
 #define MSG_SET_LEDS_RED                    _UxGT("Luz Vermelha")
 #define MSG_SET_LEDS_ORANGE                 _UxGT("Luz Laranja")
diff --git a/Marlin/src/lcd/language/language_ru.h b/Marlin/src/lcd/language/language_ru.h
index 43be882eaf..60cb707c17 100644
--- a/Marlin/src/lcd/language/language_ru.h
+++ b/Marlin/src/lcd/language/language_ru.h
@@ -144,8 +144,7 @@
 #define MSG_UBL_STEP_BY_STEP_MENU           _UxGT("Пошаговое UBL")
 
 #define MSG_LED_CONTROL                     _UxGT("Настройки LED")
-#define MSG_LEDS_ON                         _UxGT("Включить подсветку")
-#define MSG_LEDS_OFF                        _UxGT("Выключить подсветку")
+#define MSG_LEDS                            _UxGT("Подсветку")
 #define MSG_LED_PRESETS                     _UxGT("Предустановки света")
 #define MSG_SET_LEDS_RED                    _UxGT("Красный свет")
 #define MSG_SET_LEDS_ORANGE                 _UxGT("Оранжевый свет")
diff --git a/Marlin/src/lcd/language/language_sk.h b/Marlin/src/lcd/language/language_sk.h
index b6c64d1578..e3d83c649f 100644
--- a/Marlin/src/lcd/language/language_sk.h
+++ b/Marlin/src/lcd/language/language_sk.h
@@ -153,8 +153,7 @@
 #define MSG_UBL_STEP_BY_STEP_MENU           _UxGT("UBL Postupne")
 
 #define MSG_LED_CONTROL                     _UxGT("Nastavenie LED")
-#define MSG_LEDS_ON                         _UxGT("Zapnúť svetlo")
-#define MSG_LEDS_OFF                        _UxGT("Vypnúť svetlo")
+#define MSG_LEDS                            _UxGT("Svetlo")
 #define MSG_LED_PRESETS                     _UxGT("Prednastavené farby")
 #define MSG_SET_LEDS_RED                    _UxGT("Červená")
 #define MSG_SET_LEDS_ORANGE                 _UxGT("Oranžová")
diff --git a/Marlin/src/lcd/language/language_zh_CN.h b/Marlin/src/lcd/language/language_zh_CN.h
index 676e3e6a7c..a348e40712 100644
--- a/Marlin/src/lcd/language/language_zh_CN.h
+++ b/Marlin/src/lcd/language/language_zh_CN.h
@@ -143,8 +143,7 @@
 #define MSG_UBL_STEP_BY_STEP_MENU           _UxGT("一步步UBL") // "Step-By-Step UBL"
 
 #define MSG_LED_CONTROL                     _UxGT("灯管控制") // "LED Control")
-#define MSG_LEDS_ON                         _UxGT("灯亮") // "Lights On")
-#define MSG_LEDS_OFF                        _UxGT("灯灭") // "Lights Off")
+#define MSG_LEDS                            _UxGT("灯") // "Lights")
 #define MSG_LED_PRESETS                     _UxGT("灯预置") // "Light Presets")
 #define MSG_SET_LEDS_RED                    _UxGT("红") // "Red")
 #define MSG_SET_LEDS_ORANGE                 _UxGT("橙") // "Orange")
diff --git a/Marlin/src/lcd/language/language_zh_TW.h b/Marlin/src/lcd/language/language_zh_TW.h
index 87fc2c17cc..d57f2deef9 100644
--- a/Marlin/src/lcd/language/language_zh_TW.h
+++ b/Marlin/src/lcd/language/language_zh_TW.h
@@ -143,8 +143,7 @@
 #define MSG_UBL_STEP_BY_STEP_MENU           _UxGT("一步步UBL") // "Step-By-Step UBL"
 
 #define MSG_LED_CONTROL                     _UxGT("灯管控制") // "LED Control")
-#define MSG_LEDS_ON                         _UxGT("灯亮") // "Lights On")
-#define MSG_LEDS_OFF                        _UxGT("灯灭") // "Lights Off")
+#define MSG_LEDS                            _UxGT("灯") // "Lights")
 #define MSG_LED_PRESETS                     _UxGT("灯预置") // "Light Presets")
 #define MSG_SET_LEDS_RED                    _UxGT("红") // "Red")
 #define MSG_SET_LEDS_ORANGE                 _UxGT("橙") // "Orange")
diff --git a/Marlin/src/lcd/ultralcd.cpp b/Marlin/src/lcd/ultralcd.cpp
index 011dd3088c..4b3f39c536 100644
--- a/Marlin/src/lcd/ultralcd.cpp
+++ b/Marlin/src/lcd/ultralcd.cpp
@@ -4255,10 +4255,8 @@ void lcd_quick_feedback(const bool clear_buttons) {
     void lcd_led_menu() {
       START_MENU();
       MENU_BACK(MSG_MAIN);
-      if (leds.lights_on)
-        MENU_ITEM(function, MSG_LEDS_OFF, leds.toggle);
-      else
-        MENU_ITEM(function, MSG_LEDS_ON, leds.toggle);
+      bool led_on = leds.lights_on;
+      MENU_ITEM_EDIT_CALLBACK(bool, MSG_LEDS, &led_on, leds.toggle);
       MENU_ITEM(function, MSG_SET_LEDS_DEFAULT, leds.set_default);
       #if ENABLED(LED_COLOR_PRESETS)
         MENU_ITEM(submenu, MSG_LED_PRESETS, lcd_led_presets_menu);